二叉查找树和二叉堆的分析小结
来源:互联网 发布:淘宝图片空间协议手机 编辑:程序博客网 时间:2024/06/03 14:57
一、二叉排序树
定义:树中的每个节点,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。
二叉查找树中最困难的操作是remove(删除),分为以下几种情况:
1)如果节点是一片树叶,那么它可以被立即删除;
2)如果节点有一个儿子,则该节点可以在其父节点调整自己的链以绕过该节点后被删除;
3)复杂的情况是处理具有两个儿子的节点。一般的删除策略是用其右子树的最小的数据代替该节点的数据并递归的删除那个节点。
二、二叉堆
在二叉堆(假设为小顶堆)中的deleteMin操作
当删除一个最小元时,要在根节点处建立一个空穴。由于现在堆少了一个元素,因此堆中最后一个元素X必须移动到该堆的某个地方,如果X可以放入空穴中,那么deleteMin完成,一般不可能完成,因此我们将空穴的两个儿子中的较小者移入空穴,这样将空穴向下推了一层,重复该步骤直到X被填入到堆中的合适位置。
0 0
- 二叉查找树和二叉堆的分析小结
- 堆和二叉查找树的建立的时间复杂度
- 二叉堆小结
- 用java实现二叉查找树、堆和优先队列
- 堆和二叉树的区别
- 数据结构与算法分析--二叉排序树(二叉查找树,二叉搜索树)的查找、插入和删除操作
- 二叉树、二叉堆
- 二叉树的遍历和二叉查找树
- java数据结构二叉树的遍历和二叉查找树
- 二叉树和二叉查找树之间的区别
- 二叉树的查找
- 二叉树的查找
- 二叉查找树的
- 二叉树和二叉查找树
- 数据结构-二叉树和二叉查找树
- 二叉树和二叉查找树
- 二叉树和二叉查找树
- 树和二叉查找树的实现
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程
- pandas入门学习二
- 关于mac上refreshing gradle building 无限加载问题
- 登录界面的实现
- HNOI2016 网络 [树链剖分]
- 二叉查找树和二叉堆的分析小结
- React Native之打包
- git 命令 (gnu interactive tools)
- Activity和Fragment之间的联系和区别
- twisted开发分布式任务调度爬虫
- 异常
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程续
- C++第四次上机实验-穷举法
- C#通用类Helper整理