Clases |
| struct | st_tree_element |
| struct | st_tree |
'defines' |
| #define | MAX_TREE_HEIGHT 64 |
| #define | ELEMENT_KEY(tree, element) |
| #define | tree_set_pointer(element, ptr) *((byte **) (element+1))=((byte*) (ptr)) |
| #define | TREE_NO_DUPS 1 |
| #define | ELEMENT_CHILD(element, offs) (*(TREE_ELEMENT**)((char*)element + offs)) |
| #define | is_tree_inited(tree) ((tree)->root != 0) |
| #define | TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*)) |
'typedefs' |
| typedef uint32 | element_count |
| typedef int(* | tree_walk_action )(void *, element_count, void *) |
| typedef void(* | tree_element_free )(void *, TREE_FREE, void *) |
| typedef struct st_tree_element | TREE_ELEMENT |
| typedef struct st_tree | TREE |
Enumeraciones |
| enum | TREE_WALK { left_root_right,
right_root_left,
left_root_right,
right_root_left
} |
| enum | TREE_FREE {
free_init,
free_free,
free_end,
free_init,
free_free,
free_end
} |
Funciones |
| void | init_tree (TREE *tree, uint default_alloc_size, uint memory_limit, int size, qsort_cmp2 compare, my_bool with_delete, tree_element_free free_element, void *custom_arg) |
| void | delete_tree (TREE *) |
| void | reset_tree (TREE *) |
| TREE_ELEMENT * | tree_insert (TREE *tree, void *key, uint key_size, void *custom_arg) |
| void * | tree_search (TREE *tree, void *key, void *custom_arg) |
| int | tree_walk (TREE *tree, tree_walk_action action, void *argument, TREE_WALK visit) |
| int | tree_delete (TREE *tree, void *key, void *custom_arg) |
| void * | tree_search_key (TREE *tree, const void *key, TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, enum ha_rkey_function flag, void *custom_arg) |
| void * | tree_search_edge (TREE *tree, TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, int child_offs) |
| void * | tree_search_next (TREE *tree, TREE_ELEMENT ***last_pos, int l_offs, int r_offs) |
| ha_rows | tree_record_pos (TREE *tree, const void *key, enum ha_rkey_function search_flag, void *custom_arg) |