Lines Matching refs:avl
43 void free_stree(struct stree **avl);
46 struct sm_state *avl_lookup(const struct stree *avl, const struct sm_state *sm);
49 #define avl_member(avl, sm) (!!avl_lookup_node(avl, sm)) argument
52 size_t stree_count(const struct stree *avl);
55 bool avl_insert(struct stree **avl, const struct sm_state *sm);
62 bool avl_remove(struct stree **avl, const struct sm_state *sm);
69 bool avl_check_invariants(struct stree *avl);
75 #define avl_foreach(iter, avl) avl_traverse(iter, avl, FORWARD) argument
87 #define FOR_EACH_SM(avl, _sm) { \ argument
89 avl_foreach(_i, avl) { \
94 #define FOR_EACH_MY_SM(_owner, avl, _sm) { \ argument
96 avl_foreach(_i, avl) { \
101 #define avl_foreach_reverse(iter, avl) avl_traverse(iter, avl, BACKWARD) argument
116 void avl_iter_begin(AvlIter *iter, struct stree *avl, AvlDirection dir);
118 #define avl_traverse(iter, avl, direction) \ argument
119 for (avl_iter_begin(&(iter), avl, direction); \
133 AvlNode *avl_lookup_node(const struct stree *avl, const struct sm_state *sm);