#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include "tavl.h"
Go to the source code of this file.
Functions | |
struct tavl_table * | tavl_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_table * | tavl_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 |
void*() tavl_assert_delete | ( | struct tavl_table * | table, | |
void * | item | |||
) |
void() tavl_assert_insert | ( | struct tavl_table * | table, | |
void * | item | |||
) |
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 | |||
) |
void* tavl_insert | ( | struct tavl_table * | table, | |
void * | item | |||
) |
void* tavl_malloc | ( | struct libavl_allocator * | allocator, | |
size_t | size | |||
) |
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 | |||
) |
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.
Initial value:
{ tavl_malloc, tavl_free }
Definition at line 955 of file tavl.c.
Referenced by tavl_create().