libuproc  1.2.0
Data Structures | Enumerations | Functions
bst.h File Reference

Module: Binary search tree. More...

#include <stdlib.h>
#include <stdint.h>
#include "uproc/common.h"
#include "uproc/word.h"

Go to the source code of this file.

Data Structures

union  uproc_bst_key
 The BST key type. More...
 

Enumerations

enum  uproc_bst_keytype {
  UPROC_BST_UINT,
  UPROC_BST_WORD
}
 Which member of union uproc_bst_key is used. More...
 
enum  {
  UPROC_BST_KEY_NOT_FOUND = -404,
  UPROC_BST_KEY_EXISTS = -403
}
 BST specific return codes. More...
 

Functions

uproc_bstuproc_bst_create (enum uproc_bst_keytype key_type, size_t value_size)
 Initialize an empty binary search tree. More...
 
void uproc_bst_destroy (uproc_bst *t)
 Destroy BST and all contained nodes. More...
 
int uproc_bst_isempty (uproc_bst *t)
 Return non-zero if the tree is empty. More...
 
size_t uproc_bst_size (const uproc_bst *t)
 Return the number of nodes. More...
 
int uproc_bst_insert (uproc_bst *t, union uproc_bst_key key, const void *value)
 Insert item. More...
 
int uproc_bst_update (uproc_bst *t, union uproc_bst_key key, const void *value)
 Insert or update item. More...
 
int uproc_bst_get (uproc_bst *t, union uproc_bst_key key, void *value)
 Get item. More...
 
int uproc_bst_remove (uproc_bst *t, union uproc_bst_key key, void *value)
 Remove item. More...
 
void uproc_bst_map (const uproc_bst *t, void(*func)(union uproc_bst_key, void *, void *), void *opaque)
 Apply function to all items. More...
 
uproc_bstiteruproc_bstiter_create (const uproc_bst *t)
 Create BST in-order iterator. More...
 
int uproc_bstiter_next (uproc_bstiter *iter, union uproc_bst_key *key, void *value)
 Obtain next key/value pair. More...
 
void uproc_bstiter_destroy (uproc_bstiter *iter)
 Destroy BST iterator. More...
 

Detailed Description

Module: Binary search tree.