之前讲了二叉排序树是如何建立的,今天来聊一聊二叉排序树的查找、插入和删除。
一、二叉排序树的查找
结合之前所讲的二叉排序树建立,查找操作只需要从根节点开始判断与key值的大小关系,key值大,这沿着右孩子找,反之沿着左孩子找。
实现代码:
int searchBST(tNode *tree,int key)
{
if( (*tree) == NULL )
{
return 0;
}
else if( (*tree)->data == key )
{
return 1;
}
else if( (*tree)->data < key )
searchBST(&((*tree)->rchild), key);
else
searchBST(&((*tree)->lchild), key);
}
二、二叉排序树的插入
在之前讲解二叉排序树创建一节就讲了二叉排序树的插入,在此不重复。(二叉排序树的建立)
三、二叉排序树的删除
俗话说得好:“请神容易送神难”,删除算法就比较复杂了,得分如下几种情况考虑:
1、删除叶结点(直接删掉就可以了)