二叉排序树及平衡二叉树的实现
二叉排序树
二叉排序树,又称为二叉查找树。它或者是一颗空树,或者具有下列性质 的二叉树。•若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
•若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
•它的左、右子树也分别为二叉排序树。
构造一颗二叉排序树的目的,其实并不是为了排序,而是为了提高查找和>插入删除关键字的速度。不管怎么说,在一个有序数据集上的查找,速度总是要快于无序数据集的,而二叉排序树这种非线性的结构,也有利于插入和删除的实现。
插入和查找比较简单,在这里我就不详细说明了。
1、二叉排序树的插入
bool BinSortInsert(BTree *root,int num)
{
if(*root == NULL)
{
*root = (BTree)malloc(sizeof(BtNode));
(*root)->data = num;
(*root)->left = NULL;
(*root)->right = NULL;
return true;