二叉查找树和二叉堆的分析小结

本文详细介绍了二叉排序树的基本概念及其删除操作的处理方式,并深入探讨了二叉堆中deleteMin操作的具体实现过程。

一、二叉排序树
定义:树中的每个节点,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。
二叉查找树中最困难的操作是remove(删除),分为以下几种情况:
1)如果节点是一片树叶,那么它可以被立即删除;
2)如果节点有一个儿子,则该节点可以在其父节点调整自己的链以绕过该节点后被删除;
3)复杂的情况是处理具有两个儿子的节点。一般的删除策略是用其右子树的最小的数据代替该节点的数据并递归的删除那个节点。

二、二叉堆
在二叉堆(假设为小顶堆)中的deleteMin操作
当删除一个最小元时,要在根节点处建立一个空穴。由于现在堆少了一个元素,因此堆中最后一个元素X必须移动到该堆的某个地方,如果X可以放入空穴中,那么deleteMin完成,一般不可能完成,因此我们将空穴的两个儿子中的较小者移入空穴,这样将空穴向下推了一层,重复该步骤直到X被填入到堆中的合适位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值