GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-f622271e7a
|
binary search tree More...
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <grass/gis.h>
#include <grass/glocale.h>
#include <grass/rbtree.h>
Go to the source code of this file.
Functions | |
struct RB_TREE * | rbtree_create (rb_compare_fn *compare, size_t rb_datasize) |
int | rbtree_insert (struct RB_TREE *tree, void *data) |
int | rbtree_remove (struct RB_TREE *tree, const void *data) |
void * | rbtree_find (struct RB_TREE *tree, const void *data) |
int | rbtree_init_trav (struct RB_TRAV *trav, struct RB_TREE *tree) |
void * | rbtree_traverse (struct RB_TRAV *trav) |
void * | rbtree_traverse_backwd (struct RB_TRAV *trav) |
void * | rbtree_traverse_start (struct RB_TRAV *trav, const void *data) |
void | rbtree_clear (struct RB_TREE *tree) |
void | rbtree_destroy (struct RB_TREE *tree) |
int | rbtree_debug (struct RB_TREE *tree, struct RB_NODE *root) |
binary search tree
Generic balanced binary search tree (Red Black Tree) implementation
(C) 2009 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file rbtree.c.
void rbtree_clear | ( | struct RB_TREE * | tree | ) |
Definition at line 490 of file rbtree.c.
References RB_NODE::data, free(), RB_NODE::link, NULL, and RB_TREE::root.
Referenced by rbtree_destroy().
struct RB_TREE* rbtree_create | ( | rb_compare_fn * | compare, |
size_t | rb_datasize | ||
) |
Definition at line 49 of file rbtree.c.
References assert, compare(), RB_TREE::count, RB_TREE::datasize, G_warning(), malloc(), NULL, RB_TREE::rb_compare, and RB_TREE::root.
Definition at line 530 of file rbtree.c.
References RB_NODE::link, and NULL.
void rbtree_destroy | ( | struct RB_TREE * | tree | ) |
Definition at line 520 of file rbtree.c.
References free(), NULL, and rbtree_clear().
void* rbtree_find | ( | struct RB_TREE * | tree, |
const void * | data | ||
) |
Definition at line 264 of file rbtree.c.
References assert, RB_TRAV::curr_node, RB_TRAV::first, RB_TREE::root, RB_TRAV::top, and RB_TRAV::tree.
int rbtree_remove | ( | struct RB_TREE * | tree, |
const void * | data | ||
) |
void* rbtree_traverse | ( | struct RB_TRAV * | trav | ) |
Definition at line 281 of file rbtree.c.
References assert, RB_TRAV::curr_node, RB_TRAV::first, G_debug(), and NULL.
void* rbtree_traverse_backwd | ( | struct RB_TRAV * | trav | ) |
Definition at line 307 of file rbtree.c.
References assert, RB_TRAV::curr_node, RB_TRAV::first, G_debug(), and NULL.