左偏堆的特点及其应用_第1页
左偏堆的特点及其应用_第2页
左偏堆的特点及其应用_第3页
左偏堆的特点及其应用_第4页
左偏堆的特点及其应用_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

左偏树的特点及其应用广东省中山市第一中学黄源河2左偏树的定义左偏树(LeftistTree)是一种可并堆(MergeableHeap),它除了支持优先队列的三个基本操作(插入,删除,取最小节点),还支持一个很特殊的操作——合并操作。左偏树是一棵堆有序(HeapOrdered)二叉树。左偏树满足左偏性质(LeftistProperty)。3左偏树的定义——

左偏性质定义一棵左偏树中的外节点(ExternalNode)为左子树或右子树为空的节点。定义节点i的距离(dist(i))为节点i到它的后代中,最近的外节点所经过的边数。任意节点的左子节点的距离不小于右子节点的距离(左偏性质)。由左偏性质可知,一个节点的距离等于以该节点为根的子树最右路径的长度。4左偏树的性质定理:若一棵左偏树有N个节点,则该左偏树的距离不超过log(N+1)-1。最右路径:A-C-G最右路径节点数=3距离=28个节点的左偏树的最大距离:log(8+1)-1=2ABD00012EHF0G01C最右路径长度即为左偏树的距离5左偏树的操作左偏树支持下面这些操作:MakeNull——初始化一棵空的左偏树Merge——合并两棵左偏树Insert——插入一个新节点Min——取得最小节点DeleteMin——删除最小节点Delete——删除任意已知节点Decrease——减小一个节点的键值6左偏树的操作——

合并合并操作是递归进行的a<baL1R1bL2R2T1T2merge合并T1和T2两棵左偏树aL1merge

bL2R2R1先将T1的右子树与T2合并7左偏树的操作——

合并合并操作是递归进行的aL1merge

bL2R2R1R’先将T1的右子树与T2合并aL1R’8左偏树的操作——

合并合并操作是递归进行的aL1R’dist(R’)>dist(L1)aL1R’交换左右子树并更新根节点距离合并后的右子树距离可能大于左子树距离9左偏树的操作——

合并合并操作的代码如下: FunctionMerge(A,B)

IfA=NULLThen

returnB

IfB=NULLThen

returnA

Ifkey(B)<key(A)Thenswap(A,B) right(A)←Merge(right(A),B)

Ifdist(right(A))>dist(left(A))Then swap(left(A),right(A))

Ifright(A)=NULLThendist(A)←0

Elsedist(A)←dist(right(A))+1

returnA End

Function10左偏树的操作——

合并下面是一个合并的例子:61218243718700120013108261711000Merge(3,6)11左偏树的操作——

合并下面是一个合并的例子:61218243718782617Merge(8,6)Merge(3,6)12左偏树的操作——

合并下面是一个合并的例子:3718782617Merge(8,7)Merge(8,6)Merge(3,6)13左偏树的操作——

合并下面是一个合并的例子:18Merge(8,18)Merge(8,7)Merge(8,6)Merge(3,6)NULL8261714左偏树的操作——

合并下面是一个合并的例子:Merge(8,7)Merge(8,6)Merge(3,6)188261737701?15左偏树的操作——

合并下面是一个合并的例子:Merge(8,6)Merge(3,6)1122617371886121824716左偏树的操作——

合并下面是一个合并的例子:Merge(3,6)02?2617737188612182431017左偏树的操作——

合并下面是一个合并的例子:Merge(3,6)2617737188612182431020118左偏树的操作——

合并合并操作都是一直沿着两棵左偏树的最右路径进行的。一棵N个节点的左偏树,最右路径上最多有log(N+1)

个节点。因此,合并操作的时间复杂度为:

O(logN1+logN2)=O(logN)19左偏树的操作——

插入插入一个新节点把待插入节点作为一棵单节点左偏树合并两棵左偏树时间复杂度:O(logN)Merge20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论