二叉搜索树(BSTree)的实现与操作
1. 二叉搜索树简介
二叉树是基于树的最简单的数据结构,尽管在许多编程语言中它已被哈希映射所取代,但在很多应用场景中仍然非常有用。二叉树的变体可用于数据库索引、搜索算法结构甚至图形等。这里我们将二叉树称为二叉搜索树(BSTree),它是另一种实现哈希映射风格的键/值存储的方式。与哈希映射通过哈希键来查找位置不同,BSTree将键与树中的节点进行比较,然后遍历树以找到存储该键的最佳位置。
1.1 数据结构定义
以下是 bstree.h 头文件中定义的数据结构和函数声明:
#ifndef _lcthw_BSTree_h
#define _lcthw_BSTree_h
typedef int (*BSTree_compare) (void *a, void *b);
typedef struct BSTreeNode {
void *key;
void *data;
struct BSTreeNode *left;
struct BSTreeNode *right;
struct BSTreeNode *parent;
} BSTreeNode;
typedef struct BSTree {
int count;
BSTree_compare compare;
BSTreeNode *root;
} BSTree;
typedef int (*BSTree_traverse_cb) (BSTreeNode * node);
BSTree *BSTree_create(BSTre
超级会员免费看
订阅专栏 解锁全文
52

被折叠的 条评论
为什么被折叠?



