数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

1、二叉堆的合并

二叉堆:

完全二叉树,根最小。

存储时使用层序。

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

解1:

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

解2:

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

2、合并二项队列

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

3、合并两个斜堆

二叉树,根最小。

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

4、合并两个左式堆

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

5、链接存储的二叉堆中寻找第i个元素

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

6、斜堆中插入元素

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

7、左式堆中插入元素

零路径长度:从一个节点X开始到一个不具有两个儿子的Y节点的最短路径的长,可以看出有0个或者一个儿子的节点的npl=0,并且定义npl(null)=-1;

左式堆:

1.一棵二叉树

2.零路径长:左儿子≧右儿子,父节点= min{儿子} +1(这条性质导致了左式堆的严重左偏)

合并原则:根值大的堆与根值小的堆的右子堆合并(根值:根位置的元素值,并非零路径长度)

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入

数据结构(十三)二叉堆、左式堆、斜堆的合并与插入