Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/ntirpc/misc/rbtree.h
$ cat -n /usr/include/ntirpc/misc/rbtree.h 1 /* Left-leaning red/black trees */ 2 3 #ifndef _OPR_RBTREE_H 4 #define _OPR_RBTREE_H 1 5 6 #include
7 #include
8 #include
9 10 struct opr_rbtree_node { 11 struct opr_rbtree_node *left; 12 struct opr_rbtree_node *right; 13 struct opr_rbtree_node *parent; 14 uint32_t red; 15 uint32_t gen; /* generation number */ 16 }; 17 18 typedef int (*opr_rbtree_cmpf_t) (const struct opr_rbtree_node *lhs, 19 const struct opr_rbtree_node *rhs); 20 21 struct opr_rbtree { 22 struct opr_rbtree_node *root; 23 opr_rbtree_cmpf_t cmpf; 24 uint64_t size; 25 uint64_t gen; /* generation number */ 26 }; 27 28 extern void opr_rbtree_init(struct opr_rbtree *head, opr_rbtree_cmpf_t cmpf); 29 extern struct opr_rbtree_node *opr_rbtree_first(struct opr_rbtree *head); 30 extern struct opr_rbtree_node *opr_rbtree_last(struct opr_rbtree *head); 31 extern struct opr_rbtree_node *opr_rbtree_next(struct opr_rbtree_node *node); 32 extern struct opr_rbtree_node *opr_rbtree_prev(struct opr_rbtree_node *node); 33 extern struct opr_rbtree_node *opr_rbtree_lookup(struct opr_rbtree *head, 34 struct opr_rbtree_node *node); 35 extern struct opr_rbtree_node *opr_rbtree_insert(struct opr_rbtree *head, 36 struct opr_rbtree_node *node); 37 extern void opr_rbtree_insert_at(struct opr_rbtree *head, 38 struct opr_rbtree_node *parent, 39 struct opr_rbtree_node **childptr, 40 struct opr_rbtree_node *node); 41 extern void opr_rbtree_remove(struct opr_rbtree *head, 42 struct opr_rbtree_node *node); 43 extern void opr_rbtree_replace(struct opr_rbtree *head, 44 struct opr_rbtree_node *old, 45 struct opr_rbtree_node *replacement); 46 47 static inline bool opr_rbtree_node_valid(struct opr_rbtree_node *node) 48 { 49 return (node->gen != 0); 50 } 51 52 static inline unsigned long opr_rbtree_size(struct opr_rbtree *head) 53 { 54 return (head->size); 55 } 56 57 #endif /* _OPR_RBTREE_H */
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™