mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 23:56:54 +08:00
先添加了color读取和设置方式
This commit is contained in:
parent
18677a64cd
commit
f744410a4c
@ -13,6 +13,11 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
RED = 0x01,
|
||||||
|
BLACK = 0x02,
|
||||||
|
}rbt_color;
|
||||||
|
|
||||||
struct _tree_node
|
struct _tree_node
|
||||||
{
|
{
|
||||||
void *obj;
|
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->min = tree_min;
|
||||||
|
|
||||||
self->_root = NULL;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tree_rb_init(struct _tree *self, uint32_t obj_size)
|
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)
|
tree_t tree_new(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user