avl tree definitions More...
#include "common.h"
#include "collection.h"
#include "vector.h"
#include "mempool.h"
Go to the source code of this file.
Data Structures | |
struct | _cp_avlnode |
struct | _cp_avltree |
| |
#define | cp_avltree_rdlock(tree) (cp_avltree_lock((tree), COLLECTION_LOCK_READ)) |
#define | cp_avltree_wrlock(tree) (cp_avltree_lock((tree), COLLECTION_LOCK_WRITE)) |
typedef CPROPS_DLL struct _cp_avlnode | cp_avlnode |
typedef CPROPS_DLL struct _cp_avltree | cp_avltree |
CPROPS_DLL cp_avlnode * | cp_avlnode_create (void *key, void *value, cp_mempool *mempool) |
CPROPS_DLL void | cp_avltree_destroy_node (struct _cp_avltree *tree, cp_avlnode *node) |
CPROPS_DLL void | cp_avltree_destroy_node_deep (struct _cp_avltree *owner, cp_avlnode *node) |
CPROPS_DLL cp_avltree * | cp_avltree_create (cp_compare_fn cmp) |
CPROPS_DLL cp_avltree * | cp_avltree_create_by_option (int mode, cp_compare_fn cmp, cp_copy_fn key_copy, cp_destructor_fn key_dtr, cp_copy_fn val_copy, cp_destructor_fn val_dtr) |
CPROPS_DLL void | cp_avltree_destroy (cp_avltree *tree) |
CPROPS_DLL void | cp_avltree_destroy_custom (cp_avltree *tree, cp_destructor_fn key_dtr, cp_destructor_fn val_dtr) |
CPROPS_DLL void * | cp_avltree_insert (cp_avltree *tree, void *key, void *value) |
CPROPS_DLL void * | cp_avltree_get (cp_avltree *tree, void *key) |
CPROPS_DLL void * | cp_avltree_find (cp_avltree *tree, void *key, cp_op op) |
CPROPS_DLL int | cp_avltree_contains (cp_avltree *tree, void *key) |
CPROPS_DLL void * | cp_avltree_delete (cp_avltree *tree, void *key) |
CPROPS_DLL int | cp_avltree_callback_preorder (cp_avltree *tree, cp_callback_fn callback, void *prm) |
CPROPS_DLL int | cp_avltree_callback (cp_avltree *tree, cp_callback_fn callback, void *prm) |
CPROPS_DLL int | cp_avltree_callback_postorder (cp_avltree *tree, cp_callback_fn callback, void *prm) |
CPROPS_DLL int | cp_avltree_count (cp_avltree *tree) |
CPROPS_DLL int | cp_avltree_lock (cp_avltree *tree, int type) |
CPROPS_DLL int | cp_avltree_unlock (cp_avltree *tree) |
CPROPS_DLL int | cp_avltree_get_mode (cp_avltree *tree) |
CPROPS_DLL int | cp_avltree_set_mode (cp_avltree *tree, int mode) |
CPROPS_DLL int | cp_avltree_unset_mode (cp_avltree *tree, int mode) |
CPROPS_DLL void | cp_avltree_dump (cp_avltree *tree) |
CPROPS_DLL int | cp_avltree_use_mempool (cp_avltree *tree, cp_mempool *pool) |
CPROPS_DLL int | cp_avltree_share_mempool (cp_avltree *tree, cp_shared_mempool *pool) |
avl tree definitions
avl is a height balanced binary tree. Named after G. M. Adelson-Velskii and E. M. Landis who introduced the data structure in an 1962 article "An algorithm for the organization of information".
The delete and insert method implementations are recursive.