二叉查找树(Binary Search Tree)

一、定义

二叉查找树(Binary Search Tree):二叉查找树或者是空树,或者是满足如下性质的二叉树:

  1. 若它的左子树非空,则左子树上所有结点的值均小于根结点的值;
  2. 若它的右子树非空,则右子树上所有结点的值均大于根结点的值;
  3. 左、右子树本身又各是一棵二叉查找树。

上述性质简称二叉查找树性质(BST性质),故二叉查找树实际上是满足BST性质的二叉树。

 

根据BST的性质,有一些推论

  1. 二叉查找树中任一结点x,其左(右)子树中任一结点y(若存在)的关键字必小(大)于x的关键字;
  2. 二叉查找树中,各结点关键字是惟一的;
  3.  按中序遍历该树所得到的中序序列是一个递增有序序列。

二、基本操作

 

二叉查找树T有三种基本的操作:查找、插入、删除

查找节点X

  1. 如果T为空,就返回false;
  2. 如果X等于当前节点项,返回true;
  3. 否则,如果X小于当前节点项,则递归查找其左子树;如果X大于当前节点项,则递归查找其右子树;

 

插入节点X

  1. 如果找到X,则什么都不用做;
  2. 否则将节点X插入到遍历的路径上的最后一点上。

 

 

删除节点X

  1. 如果节点X是叶子节点,则直接删除;
  2. 如果节点X只有一个儿子,则删除节点X,并用它的儿子来代替它的位置;
  3. 如果节点X有两个儿子,则用其右子树的最小的数据代替该节点的数据并递归地删除那个节点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值