mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 15:56:52 +08:00
先添加了color读取和设置方式
This commit is contained in:
parent
18677a64cd
commit
f744410a4c
@ -13,6 +13,11 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
typedef enum {
|
||||
RED = 0x01,
|
||||
BLACK = 0x02,
|
||||
}rbt_color;
|
||||
|
||||
struct _tree_node
|
||||
{
|
||||
void *obj;
|
||||
|
40
src/tree.c
40
src/tree.c
@ -993,13 +993,53 @@ bool tree_avl_init(struct _tree *self, uint32_t obj_size)
|
||||
self->min = tree_min;
|
||||
|
||||
self->_root = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
rbt_color tree_color(struct _tree_node* node)
|
||||
{
|
||||
assert(node != NULL);
|
||||
return node->color;
|
||||
}
|
||||
|
||||
bool tree_set_color(struct _tree_node* node, rbt_color color)
|
||||
{
|
||||
assert(node != NULL);
|
||||
node->color = color;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool tree_rb_init(struct _tree *self, uint32_t obj_size)
|
||||
{
|
||||
assert(self != NULL);
|
||||
self->_obj_size = obj_size;
|
||||
self->_size = 0;
|
||||
// self->_capacity = 64;
|
||||
// self->_ratio = 2;
|
||||
|
||||
self->_right_priority = false;
|
||||
|
||||
self->insert = tree_avl_insert;
|
||||
self->delete = tree_avl_delete;
|
||||
self->clear = tree_clear;
|
||||
self->empty = tree_empty;
|
||||
self->size = tree_size;
|
||||
self->destory = tree_destory;
|
||||
self->preorder = tree_avl_preorder;
|
||||
self->inorder = tree_avl_inorder;
|
||||
self->postorder = tree_avl_postorder;
|
||||
self->breadth = tree_avl_breadth;
|
||||
self->order = tree_order;
|
||||
self->find = tree_avl_find;
|
||||
self->height = tree_height;
|
||||
self->rebalance = tree_avl_rebalance;
|
||||
self->find_max = tree_find_max;
|
||||
self->find_min = tree_find_min;
|
||||
self->max = tree_max;
|
||||
self->min = tree_min;
|
||||
|
||||
self->_root = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
tree_t tree_new(void)
|
||||
|
Loading…
Reference in New Issue
Block a user