root/ompi/mca/coll/libnbc/libdict/hb_tree.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * hb_tree.h
   3  *
   4  * Interface for height balanced tree.
   5  * Copyright (C) 2001 Farooq Mela.
   6  *
   7  * $Id: hb_tree.h,v 1.2 2001/09/10 06:46:41 farooq Exp $
   8  */
   9 
  10 #ifndef _HB_TREE_H_
  11 #define _HB_TREE_H_
  12 
  13 #include "dict.h"
  14 
  15 BEGIN_DECL
  16 
  17 struct hb_tree;
  18 typedef struct hb_tree hb_tree;
  19 
  20 hb_tree *hb_tree_new __P((dict_cmp_func key_cmp, dict_del_func key_del,
  21                                                   dict_del_func dat_del));
  22 dict    *hb_dict_new __P((dict_cmp_func key_cmp, dict_del_func key_del,
  23                                                   dict_del_func dat_del));
  24 void     hb_tree_destroy __P((hb_tree *tree, int del));
  25 
  26 int hb_tree_insert __P((hb_tree *tree, void *key, void *dat, int overwrite));
  27 int hb_tree_probe __P((hb_tree *tree, void *key, void **dat));
  28 void *hb_tree_search __P((hb_tree *tree, const void *key));
  29 int hb_tree_remove __P((hb_tree *tree, const void *key, int del));
  30 void hb_tree_empty __P((hb_tree *tree, int del));
  31 void hb_tree_walk __P((hb_tree *tree, dict_vis_func visit));
  32 unsigned hb_tree_count __P((const hb_tree *tree));
  33 unsigned hb_tree_height __P((const hb_tree *tree));
  34 unsigned hb_tree_mheight __P((const hb_tree *tree));
  35 unsigned hb_tree_pathlen __P((const hb_tree *tree));
  36 const void *hb_tree_min __P((const hb_tree *tree));
  37 const void *hb_tree_max __P((const hb_tree *tree));
  38 
  39 struct hb_itor;
  40 typedef struct hb_itor hb_itor;
  41 
  42 hb_itor *hb_itor_new __P((hb_tree *tree));
  43 dict_itor *hb_dict_itor_new __P((hb_tree *tree));
  44 void hb_itor_destroy __P((hb_itor *tree));
  45 
  46 int hb_itor_valid __P((const hb_itor *itor));
  47 void hb_itor_invalidate __P((hb_itor *itor));
  48 int hb_itor_next __P((hb_itor *itor));
  49 int hb_itor_prev __P((hb_itor *itor));
  50 int hb_itor_nextn __P((hb_itor *itor, unsigned count));
  51 int hb_itor_prevn __P((hb_itor *itor, unsigned count));
  52 int hb_itor_first __P((hb_itor *itor));
  53 int hb_itor_last __P((hb_itor *itor));
  54 int hb_itor_search __P((hb_itor *itor, const void *key));
  55 const void *hb_itor_key __P((const hb_itor *itor));
  56 void *hb_itor_data __P((hb_itor *itor));
  57 const void *hb_itor_cdata __P((const hb_itor *itor));
  58 int hb_itor_set_data __P((hb_itor *itor, void *dat, int del));
  59 int hb_itor_remove __P((hb_itor *itor, int del));
  60 
  61 END_DECL
  62 
  63 #endif /* !_HB_TREE_H_ */

/* [<][>][^][v][top][bottom][index][help] */