二叉排序树与平衡二叉树

目录

1、为什么要用树表查询

​ 2、二叉排序树

2.1二叉排序树的定义

2.2二叉排序树的操作-查找

2.3用二叉链表存储二叉排序树

2.4二叉排序树递归查找的算法与思想

2.5二叉排序树的查找分析

2.6二叉排序树的操作-插入

2.7二叉排序树的操作-生成

2.8二叉排序树的操作-删除

 2.8.1删除节点要考虑的两点

 2.8.2若被删除结点节点为叶子节点

​ 2.8.3若被删除节点只有左子树或只有右子树

 2.8.4若被删除节点既有左子树又有右子树

 2.8.5 三种情况删除的例子

3、平衡二叉树

3.1为什么要用平衡二叉树

3.2平衡二叉树的定义

3.3平衡二叉树失衡的调整

3.3.1四种失衡二叉排序树的具体过程

 3.4给出数值构造平衡二叉树的例题


1、为什么要用树表查询

2、二叉排序树

2.1二叉排序树的定义

 注意子树左边是小于,而右边是大于等于。

2.2二叉排序树的操作-查找

2.3用二叉链表存储二叉排序树

 一个数据域,两个左右孩子节点

2.4二叉排序树递归查找的算法与思想

2.5二叉排序树的查找分析

不同的二叉排序树平均查找长度的例子:

 

 

 

2.6二叉排序树的操作-插入

 此时不用考虑效率平衡的问题,只需要不断地查找知道某个叶子结点的左子树或右子树为空,节点为该叶子节点的左孩子或右孩子

2.7二叉排序树的操作-生成

 

2.8二叉排序树的操作-删除

 2.8.1删除节点要考虑的两点

1.要保证删除后的重新连接的二叉树还是二叉排序树,中序遍历后还是一个递增的有序序列

2.要保证重新连接的而二叉树树的高度不能增加

2.8.2若被删除结点节点为叶子节点

2.8.3若被删除节点只有左子树或只有右子树

 2.8.4若被删除节点既有左子树又有右子树

 因为要满足二叉排序树的中序排列必须是递增的有序序列,所以用中序遍历的前驱节点或后继节点来代替它,中序遍历的前驱节点是左子树中最大的节点,中序遍历的后继节点是右子树中最小的节点。

2.8.5 三种情况删除的例子:

3、平衡二叉树

3.1为什么要用平衡二叉树

为了提高二叉排序树的查找效率,所以要对二叉排序树进行平衡化处理

3.2平衡二叉树的定义

 

 

3.3平衡二叉树失衡的调整

最小失衡子树根节点是说子根是最少的失衡的节点。

 

 按照中序遍历的顺序,把数值排序第二的节点作为根节点,然后在保持二叉树的特性就OK了。

3.3.1四种失衡二叉排序树的具体过程

 LL型,RR型,RL型,LR型是根据最小失衡子树根节点来作为判断的,LL就是左子树的左子树插入一个节点造成失衡,但是不一定是根节点必须移动。

 

 

 

 因为此时是7节点为最小失衡子树的根节点,所以此时为RL型,此时就应该选择中间的9节点作为7与11的根节点,最后把插入的8节点作为7节点的右子树

 

 3.4给出数值构造平衡二叉树的例题

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值