二叉排序树,也称为二叉查找树,其定义基于以下特性:空树或满足以下条件的二叉树,其中每个非空节点的左子树包含的值都小于根节点,右子树包含的值都大于根节点。这种性质被称为BST性质。
二叉排序树的主要特点包括:
在实际应用中,如果数据集中元素的关键字可能重复,可以通过调整BST性质来处理,比如将"小于"修改为"小于等于"或"大于"改为"大于等于"。
二叉排序树的存储结构通常使用如下的结构定义:
typedef int KeyType;
typedef struct {
KeyType key;
InfoType otherinfo;
struct node *lchild, *rchild, *parent;
} BSTNode;
typedef BSTNode *BSTree;
基础操作包括: