mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 15:56:52 +08:00
删除旧代码并添加获取最大值和最小值的函数
This commit is contained in:
parent
82c5a881e7
commit
18677a64cd
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -13,6 +13,8 @@
|
||||
"stdio.h": "c",
|
||||
"tree.h": "c",
|
||||
"deque.h": "c",
|
||||
"config.h": "c"
|
||||
"config.h": "c",
|
||||
"limits": "c",
|
||||
"*.tcc": "c"
|
||||
}
|
||||
}
|
@ -13,67 +13,6 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#if AVLTREE == 1 || RAVLTREE == 1
|
||||
// typedef int tree_data_t;
|
||||
|
||||
typedef struct _tree_node_t
|
||||
{
|
||||
tree_data_t data;
|
||||
struct _tree_node_t * left;
|
||||
struct _tree_node_t * right;
|
||||
struct _tree_node_t * parent;
|
||||
int32_t balance; // balance of avl tree
|
||||
}tree_node_t, *ptree_node_t;
|
||||
|
||||
|
||||
typedef struct _tree_t
|
||||
{
|
||||
struct _tree_node_t * tree;
|
||||
uint32_t size;
|
||||
}tree_t, *ptree_t;
|
||||
|
||||
typedef void (*tree_data_disp_t)(tree_data_t data);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if RAVLTREE == 1
|
||||
bool tree_init(ptree_node_t *head);
|
||||
void tree_destroy(ptree_node_t *head);
|
||||
bool tree_empty(ptree_node_t head);
|
||||
void tree_clear(ptree_node_t head);
|
||||
uint32_t tree_get_size(ptree_node_t head);
|
||||
|
||||
bool tree_insert(ptree_node_t head, tree_data_t data);
|
||||
bool tree_delete(ptree_node_t head, tree_data_t data);
|
||||
bool tree_get_min(ptree_node_t head, tree_data_t *data);
|
||||
bool tree_get_max(ptree_node_t head, tree_data_t *data);
|
||||
|
||||
void tree_traversal_depth_preorder(ptree_node_t head, tree_data_disp_t tree_data_disp);
|
||||
void tree_traversal_depth_inorder(ptree_node_t head, tree_data_disp_t tree_data_disp);
|
||||
//void tree_traversal_depth_postorder(ptree_node_t head, tree_data_disp_t tree_data_disp);
|
||||
//void tree_traversal_breadth(ptree_node_t head, tree_data_disp_t tree_data_disp);
|
||||
|
||||
#endif
|
||||
|
||||
#if AVLTREE == 1
|
||||
bool tree_init(ptree_t *head);
|
||||
void tree_destroy(ptree_t *head);
|
||||
bool tree_empty(ptree_t head);
|
||||
void tree_clear(ptree_t head);
|
||||
uint32_t tree_get_size(ptree_t head);
|
||||
|
||||
bool tree_insert(ptree_t head, tree_data_t data);
|
||||
bool tree_delete(ptree_t head, tree_data_t data);
|
||||
bool tree_get_min(ptree_t head, tree_data_t *data);
|
||||
bool tree_get_max(ptree_t head, tree_data_t *data);
|
||||
|
||||
void tree_traversal_depth_preorder(ptree_t head, tree_data_disp_t tree_data_disp);
|
||||
void tree_traversal_depth_inorder(ptree_t head, tree_data_disp_t tree_data_disp);
|
||||
void tree_traversal_depth_postorder(ptree_t head, tree_data_disp_t tree_data_disp);
|
||||
void tree_traversal_breadth(ptree_t head, tree_data_disp_t tree_data_disp);
|
||||
#endif
|
||||
|
||||
struct _tree_node
|
||||
{
|
||||
void *obj;
|
||||
@ -110,8 +49,8 @@ struct _tree
|
||||
bool (*rebalance)(struct _tree* self, struct _tree_node* root);
|
||||
int32_t (*height)(struct _tree* self, struct _tree_node* root);
|
||||
|
||||
bool (*min)(struct _tree* self, void** obj);
|
||||
bool (*max)(struct _tree* self, void** obj);
|
||||
bool (*min)(struct _tree* self, void* obj);
|
||||
bool (*max)(struct _tree* self, void* obj);
|
||||
|
||||
bool (*clear)(struct _tree* self);
|
||||
bool (*empty)(struct _tree* self);
|
||||
|
1419
src/tree.c
1419
src/tree.c
File diff suppressed because it is too large
Load Diff
@ -306,6 +306,16 @@ void test_tree_num(void)
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("----- max -----\n");
|
||||
tree->max(tree, &temp);
|
||||
tree->print_obj(&temp);
|
||||
printf("\n");
|
||||
|
||||
printf("----- min -----\n");
|
||||
tree->min(tree, &temp);
|
||||
tree->print_obj(&temp);
|
||||
printf("\n");
|
||||
|
||||
printf("----- tree -----\n");
|
||||
tree->clear(tree);
|
||||
if(tree->empty(tree))
|
||||
|
Loading…
Reference in New Issue
Block a user