tavl.c File Reference

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include "tavl.h"

Include dependency graph for tavl.c:

Go to the source code of this file.

Functions

struct tavl_tabletavl_create (tavl_comparison_func *compare, void *param, struct libavl_allocator *allocator)
void * tavl_find (const struct tavl_table *tree, const void *item)
void ** tavl_probe (struct tavl_table *tree, void *item)
void * tavl_insert (struct tavl_table *table, void *item)
void * tavl_replace (struct tavl_table *table, void *item)
void * tavl_delete (struct tavl_table *tree, const void *item)
void tavl_t_init (struct tavl_traverser *trav, struct tavl_table *tree)
void * tavl_t_first (struct tavl_traverser *trav, struct tavl_table *tree)
void * tavl_t_last (struct tavl_traverser *trav, struct tavl_table *tree)
void * tavl_t_find (struct tavl_traverser *trav, struct tavl_table *tree, void *item)
void * tavl_t_insert (struct tavl_traverser *trav, struct tavl_table *tree, void *item)
void * tavl_t_copy (struct tavl_traverser *trav, const struct tavl_traverser *src)
void * tavl_t_next (struct tavl_traverser *trav)
void * tavl_t_prev (struct tavl_traverser *trav)
void * tavl_t_cur (struct tavl_traverser *trav)
void * tavl_t_replace (struct tavl_traverser *trav, void *new)
struct tavl_tabletavl_copy (const struct tavl_table *org, tavl_copy_func *copy, tavl_item_func *destroy, struct libavl_allocator *allocator)
void tavl_destroy (struct tavl_table *tree, tavl_item_func *destroy)
void * tavl_malloc (struct libavl_allocator *allocator, size_t size)
void tavl_free (struct libavl_allocator *allocator, void *block)
void() tavl_assert_insert (struct tavl_table *table, void *item)
void *() tavl_assert_delete (struct tavl_table *table, void *item)

Variables

struct libavl_allocator tavl_allocator_default


Function Documentation

void*() tavl_assert_delete ( struct tavl_table table,
void *  item 
)

Definition at line 975 of file tavl.c.

References tavl_delete().

void() tavl_assert_insert ( struct tavl_table table,
void *  item 
)

Definition at line 966 of file tavl.c.

References tavl_probe().

struct tavl_table* tavl_copy ( const struct tavl_table org,
tavl_copy_func copy,
tavl_item_func destroy,
struct libavl_allocator allocator 
) [read]

Definition at line 839 of file tavl.c.

References tavl_table::tavl_alloc, TAVL_CHILD, tavl_table::tavl_compare, tavl_table::tavl_count, tavl_create(), tavl_node::tavl_link, tavl_table::tavl_param, tavl_table::tavl_root, tavl_node::tavl_tag, and TAVL_THREAD.

struct tavl_table* tavl_create ( tavl_comparison_func compare,
void *  param,
struct libavl_allocator allocator 
) [read]

Definition at line 36 of file tavl.c.

References libavl_allocator::libavl_malloc, tavl_table::tavl_alloc, tavl_allocator_default, tavl_table::tavl_compare, tavl_table::tavl_count, tavl_table::tavl_param, and tavl_table::tavl_root.

Referenced by tavl_copy().

void* tavl_delete ( struct tavl_table tree,
const void *  item 
)

Definition at line 324 of file tavl.c.

References libavl_allocator::libavl_free, tavl_table::tavl_alloc, tavl_node::tavl_balance, TAVL_CHILD, tavl_table::tavl_compare, tavl_table::tavl_count, tavl_node::tavl_data, tavl_node::tavl_link, tavl_table::tavl_param, tavl_table::tavl_root, tavl_node::tavl_tag, and TAVL_THREAD.

Referenced by tavl_assert_delete().

void tavl_destroy ( struct tavl_table tree,
tavl_item_func destroy 
)

Definition at line 910 of file tavl.c.

References libavl_allocator::libavl_free, tavl_table::tavl_alloc, TAVL_CHILD, tavl_node::tavl_data, tavl_node::tavl_link, tavl_table::tavl_param, tavl_table::tavl_root, and tavl_node::tavl_tag.

void* tavl_find ( const struct tavl_table tree,
const void *  item 
)

Definition at line 62 of file tavl.c.

References TAVL_CHILD, tavl_table::tavl_compare, tavl_node::tavl_data, tavl_node::tavl_link, tavl_table::tavl_param, tavl_table::tavl_root, and tavl_node::tavl_tag.

void tavl_free ( struct libavl_allocator allocator,
void *  block 
)

Definition at line 948 of file tavl.c.

void* tavl_insert ( struct tavl_table table,
void *  item 
)

Definition at line 260 of file tavl.c.

References tavl_probe().

void* tavl_malloc ( struct libavl_allocator allocator,
size_t  size 
)

Definition at line 940 of file tavl.c.

void** tavl_probe ( struct tavl_table tree,
void *  item 
)

Definition at line 93 of file tavl.c.

References libavl_allocator::libavl_malloc, tavl_table::tavl_alloc, tavl_node::tavl_balance, TAVL_CHILD, tavl_table::tavl_compare, tavl_table::tavl_count, tavl_node::tavl_data, tavl_node::tavl_link, TAVL_MAX_HEIGHT, tavl_table::tavl_param, tavl_table::tavl_root, tavl_node::tavl_tag, and TAVL_THREAD.

Referenced by tavl_assert_insert(), tavl_insert(), tavl_replace(), and tavl_t_insert().

void* tavl_replace ( struct tavl_table table,
void *  item 
)

Definition at line 271 of file tavl.c.

References tavl_probe().

void* tavl_t_copy ( struct tavl_traverser trav,
const struct tavl_traverser src 
)

Definition at line 698 of file tavl.c.

References tavl_node::tavl_data, tavl_traverser::tavl_node, and tavl_traverser::tavl_table.

void* tavl_t_cur ( struct tavl_traverser trav  ) 

Definition at line 758 of file tavl.c.

References tavl_node::tavl_data, and tavl_traverser::tavl_node.

void* tavl_t_find ( struct tavl_traverser trav,
struct tavl_table tree,
void *  item 
)

Definition at line 633 of file tavl.c.

References TAVL_CHILD, tavl_table::tavl_compare, tavl_node::tavl_data, tavl_node::tavl_link, tavl_traverser::tavl_node, tavl_table::tavl_param, tavl_table::tavl_root, tavl_traverser::tavl_table, and tavl_node::tavl_tag.

void* tavl_t_first ( struct tavl_traverser trav,
struct tavl_table tree 
)

Definition at line 591 of file tavl.c.

References TAVL_CHILD, tavl_node::tavl_data, tavl_node::tavl_link, tavl_traverser::tavl_node, tavl_table::tavl_root, tavl_traverser::tavl_table, and tavl_node::tavl_tag.

Referenced by tavl_t_next().

void tavl_t_init ( struct tavl_traverser trav,
struct tavl_table tree 
)

Definition at line 581 of file tavl.c.

References tavl_traverser::tavl_node, and tavl_traverser::tavl_table.

Referenced by tavl_t_insert().

void* tavl_t_insert ( struct tavl_traverser trav,
struct tavl_table tree,
void *  item 
)

Definition at line 673 of file tavl.c.

References tavl_node::tavl_data, tavl_traverser::tavl_node, tavl_probe(), tavl_t_init(), and tavl_traverser::tavl_table.

void* tavl_t_last ( struct tavl_traverser trav,
struct tavl_table tree 
)

Definition at line 611 of file tavl.c.

References TAVL_CHILD, tavl_node::tavl_data, tavl_node::tavl_link, tavl_traverser::tavl_node, tavl_table::tavl_root, tavl_traverser::tavl_table, and tavl_node::tavl_tag.

Referenced by tavl_t_prev().

void* tavl_t_next ( struct tavl_traverser trav  ) 

Definition at line 712 of file tavl.c.

References TAVL_CHILD, tavl_node::tavl_data, tavl_node::tavl_link, tavl_traverser::tavl_node, tavl_t_first(), tavl_traverser::tavl_table, tavl_node::tavl_tag, and TAVL_THREAD.

void* tavl_t_prev ( struct tavl_traverser trav  ) 

Definition at line 736 of file tavl.c.

References TAVL_CHILD, tavl_node::tavl_data, tavl_node::tavl_link, tavl_traverser::tavl_node, tavl_t_last(), tavl_traverser::tavl_table, tavl_node::tavl_tag, and TAVL_THREAD.

void* tavl_t_replace ( struct tavl_traverser trav,
void *  new 
)

Definition at line 769 of file tavl.c.

References tavl_node::tavl_data, and tavl_traverser::tavl_node.


Variable Documentation

struct libavl_allocator tavl_allocator_default

Initial value:

Definition at line 955 of file tavl.c.

Referenced by tavl_create().


Generated on Wed Dec 19 14:59:55 2007 for GRASS by  doxygen 1.5.4