《数据结构A》第章黄刚_第1页
《数据结构A》第章黄刚_第2页
《数据结构A》第章黄刚_第3页
《数据结构A》第章黄刚_第4页
《数据结构A》第章黄刚_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

数据结构DataStructuresinC++南京邮电大学计算机学院第5章树南京邮电大学计算机学院5.1

树的基本概念5.2

二叉树5.3

二叉树的遍历5.5

树和森林5.6

堆和优先权队列5.7

哈夫曼树和哈夫曼编码5.8

并查集和等价关系南京邮电大学计算机学院5.1树的基本概念南京邮电大学计算机学院树形结构是元素之间有着分层关系的结构,它类似于自然界中的树。这是一类很重要的非线性数据结构。一方面,计算机应用中,常常出现嵌套的数据,树结构提供了对该类数据的自然表示。另一方面利用树结构,我们可以有效地解决一些算法问题。南京邮电大学计算机学院图5-1西欧语言谱系图原始印欧语古意大利语日耳曼语西日耳曼语拉丁语西班牙语法语意大利语希腊语北日耳曼语冰岛语瑞典语挪威语英语荷兰语德语古希腊语南京邮电大学计算机学院5.1.1树的定义定义5.1树是包括n个结点的有限非空集合D,R是D中元素的序偶的集合,R满足以下特性:(1)有且仅有一个结点rD,不存在任何结点vD,vr,使得<v,r>R,称r为树的根;(2)除根r以外的所有结点uD,都有且仅有一个结点vD,vu,使得<v,u>R。这样定义的树也称有根树,简称树。

南京邮电大学计算机学院定义5.2树是包括n个结点的有限非空集合T,其中,一个特定的结点r称为根,其余结点T-{r}划分成m(m0)个互不相交的子集T1,T2,,Tm,其中,每个子集都是树,被称为树根r的子树。

南京邮电大学计算机学院南京邮电大学计算机学院双亲(parent):若一个结点有子树,那么该结点称为子树根的双亲。A、F、B的双亲是E。C、D的双亲是F。孩子(child):某接点子树的根是该结点的孩子。E有三个孩子:A、F、B。D有一个孩子:J。兄弟(sibling):有相同双亲的结点互为兄弟。A、F、B互为兄弟,C和D互为兄弟。结点G和C互为兄弟否?EAFGBCDLJMN南京邮电大学计算机学院结点的度(degree):结点拥有的子树数。结点E的度为3,结点F的度为2,结点A的度为1,结点G的度为0。叶子(leaf):度为零的结点。B、G、J、M、N均为叶子结点。EAFGBCDLJMN分支结点(branch):度不为零的结点。E、A、F、C等为分支结点。树的度:树中结点的最大的度。该树的度为3。南京邮电大学计算机学院AG无序树:如果树中结点的各子树之间的次序是不重要的,可以交换位置。下列是同一棵无序树:将左边树中所有结点的子树互换次序就是右边的树。EAFGBCDLJMNEFBCDLJNM南京邮电大学计算机学院有序树:如果树中结点的各棵子树看成是从左到右有次序的,则称该树为有序树。有序树的各子树从左到右为第一棵子树、第二棵,…下列是二棵有序树:AGEAFGBCDLJMNEFBCDLJNM南京邮电大学计算机学院森林:是树的集合。0个或多个不相交的树组成森林。果园或有序森林:有序树的有序集合。若将树中的根去掉,则得到根的子树组成的森林。

BEAGFCDLJMNE

若增加一个结点,将森林中各树的根作为新增结点的孩子,则森林即成为树。南京邮电大学计算机学院5.2二叉树南京邮电大学计算机学院方法珍二:削改进稳结构滴,组作织成妻树形苦结构府。比发较次元数不听会超督过树躬高,浙提高趣了效范率。二叉赖树是听非常留重要越的树潜形数忠据结大构,很多钻从实肢际问府题中寒抽象站出来卡的数斯据是惑二叉馋树形冰的。二叉认树应汤用例放子。未设有慎序表伤为(21,25,28,33,36,45),还现在正要在守表中躺查找乏元素33。282136253345方法营一:芽顺序狱搜索薪。效挥率低韵,平芒均比胀较一辅半的努元素稍。(21,25,28,33,36,45)比较赴了4次!比较绘了3次!3333南京任邮电磨大学江计算码机学艺院5.厦2.矿1二叉稀树的苏定义定义5.干3二叉召树是结咏点的家有限船集合盘,该这集合暑或者极为空南集,促或者茄是由新一个颜根和呢两棵绳互不喊相交呀的,膛称为盖该根宿的左艘子树郑和右帐子树暗的二与叉树桂组成视。南京酬邮电递大学姥计算发机学葛院二叉语树的疾五种耕基本丛形态二叉崭树与启树的欠区别二叉攻树可毁以为短空二责叉树二叉内树结鹿点的曾子树态分为饺左、仍右子魂树南京延邮电眠大学穷计算殃机学捎院5.端2.劣2二叉晃树的穴性质性质5.仙1二叉乒树的刘第i(准i1)层上酬至多财有2i-失1个结洒点。证明炮:当i=河1时,属二叉羽树只渗有一护个结命点,爬结论可成立冻。净设矩当i=裂k时结闯论成宝立,超则当i=若k+勺1时,悦因为新每个刷结点等最多康只有逮两个荣孩子夏,所融以,咸第k+死1层上台至多河有2*娃2k-冷1=2k个结点脏,性亡质成卖立。南京暖邮电受大学滤计算尽机学顽院性质5.抗2高度闯为h的二丛叉树片上至义多有2h–1个结河点。证明冰:当h=征0时,颤二叉骨树为脚空二拼叉树脉。当h>泥0时,狠利用亏性质5-1,高摄度为h的二卡叉树死中结向点的扎总数源最多寇为:南京宁邮电疫大学政计算倾机学昆院性质1、2的图变形解羊释南京聚邮电伶大学奔计算闭机学许院性质5.墨3包含n个元仗素的免二叉嗽树的还高度倦至少欣为lo位g2(n诵+1档)证明:由插性质2,高版度为h的二狮叉树储最多泡有2h–1个结孩点,参因而n2h–1塑,则有hlo统g2(n袖+1览)。因h是整皆数,记所以hlo找g2(n现+1敏)。南京化邮电架大学替计算知机学榜院性质5.违4任意伙一棵过二叉贺树中伤,若颠叶结锹点的昆个数霉为n0,度为2的结尘点的勾个数棕为n2,则必童有n0=n2+1。证明塔:设二容叉树困的度免为1的结诊点数熟为n1,树中匠结点这总数唤为n,则n=泽n0甘+n袜1+罚n2乡丰…祝…①(∵二叉披树中勾只有鸭度为0、1、2三种押类型胜的结油点)设分看支数复为B,n个结掌点的诵二叉铅树,犁除了昼根结惯点外萄,每炸个结嚼点都任有一榴个分解支进散入,熊则B=虑n-朱1;分支俗是由絮度为1或者喜度为2的射晕出的鲁,又剥有B=找2n兄2+毁n1;则有俱:n-戒1=救2n伪2+穗n1n路=2此n2昨+n员1+粗1…缠…②由①驳②可得减到:n0凭+n川1+典n2岸=2朱n2挡+n阶1+晌1趁n0监+n队2=扬2n斧2突+1即n2汪=n么0-酱1。南京急邮电召大学素计算洗机学螺院定义5.丸4高度旬为h的二贡叉树竞恰好竹有2h–1个结戴点时司称为蛋满二服叉树。定义5.指5一棵滑二叉易树中拴,只央有最才下面刺两层计结点极的度肌可以参小于2,并飞且最毅下一享层的混叶结唱点集孔中在府靠左例的若翁干位维置上往,这魂样的涂二叉值树称脾为完纤全二络叉树。定义5.说6扩充圣二叉蕉树浅也称2-树,扩充莲二叉史树中晨除叶赢子结返点外拌,其纹余结猜点都朴必须耀有两分个孩严子。南京景邮电殊大学奥计算寻机学好院南京绣邮电遭大学营计算延机学甩院性质5.新5具有n个结津点的完全阵二叉巡寿树的高谎度为lo啊g2(n和+1脚)。证明更:设完免全二盈叉树笛的高棕度为h,则除脉最下冤层外删,前h-岔1层形蒸成满丘二叉贵树,奸总共伤有2h-辽11个结纷点;勉而最立下层还,即丧第h层的粱结点滨个数磁最多海不超奋过2h-代1个。冷因此创有2h-烟11<捷n2h1移项应得2h-臂1<n亭+12h取对删数h-拒1<徐lo请g2(n汪+1可)hlo负g2(n元+1郊)h<机lo棍g2(n掠+1陵)+逐1所以,h则=lo默g2(n伞+1烧)南京冰邮电词大学弄计算气机学补院性质5.队6假定赴对一赴棵有n个结凤点的浪完全迅二叉览树中译的结疯点,窝按从葱上到码下、纽奉从左仗到右位的顺锤序,经从0到n-愤1编号指,设末树中亏某个给结点糖的序述号为i,0i<鸦n,则有原以下河关系印成立螺:(1)当i=搏0时,浩该结岔点为掩二叉垦树的萍根;(2)若i>呀0,则该酷结点势的双济亲的曲序号驾为(i滚-1苗)/帜2;(3)若2i绸+1川<n,则该皇结点恋的左忽孩子桂的序变号为2i巧+1,否则收该结隔点无瞒左孩章子;(4绘)若2i焰+2蔑<n,则该偶结点洗的右塔孩子患的序已号为2i悼+2,否则寻该结描点无姨右孩违子。南京姐邮电率大学抓计算泡机学枯院5.由2.驾3二叉玻树AD卵TAD喊TBT防re背e{数据续:二叉物树是灶结点外的有向限集馒合,那它或钢者为往空集灶合,徒或翁者潮由一误个根苍结点托和两牛棵互困不相描交的游左、术右子华二叉税树组益成。运算娇:Cr诱ea收te始()佩;构造帮一棵悔空二屋叉树量。De陡st谢ro袋y(搁):撤消抄一棵暑二叉陪树。Is无Em灭pt县y()皱:若二魄叉树圾为空捆,则督返回tr送ue,否则盒返回fa行ls竟e。Cl熟ea本r(狡):移去培所有缴结点赏,成赶为空话二叉怀树。南京芝邮电祥大学插计算愁机学充院Ro层ot随(x顽):若二否叉树漏非空荒,则x有根附的值智,并臭返回tr车ue,否则夏返回fa浩ls蚁e。Ma戴ke袜Tr羊ee(x灶,略le军ft照,冲ri诉gh崭t)握:构造丽一棵致二叉剧树:宰根的鸣值为x,以le漠ft和ri奴gh唉t为左交右子罗树。Br哑ea付kT男re煌e(x侨,组le起ft子,停ri宝gh接t)勾:拆分调二叉痛树为惜三部纸分:x为根泥的值烈,le产ft和ri魄gh插t分别皱为原育树的乱左、法右子赴树南京灾邮电倦大学乐计算器机学隆院Pr歼eO衫rd教er(V毙is弄it凤):使用鲁函数Vi旺si塑t访问没结点,先序堤遍历令二叉遗树。In赖Or番de叶r(V桐is帽it侵):使用宗函数Vi恒si惑t访问什结点,中序夺遍历施二叉亏树。Po洗st献Or仿de并r(V被is炎it甘):使用荐函数Vi谱si滔t访问慌结点,后序妇遍历杏二叉震树。}南京来邮电茧大学燃计算心机学龟院5.锡2.腥4二叉节树的希存储利表示完全席二叉维树的谜顺序格表示南京娱邮电板大学恢计算葱机学置院二叉留树的怨链接为表示(二叉姓链表)lChildelementrChild共有n-柏1个指照针域香非空,恰有n+生1个空今指针傍域。南京悠邮电躬大学胳计算帖机学斑院5.夏2.协5二叉惨树类程序5.雀1二叉征树结另点类te纳mp帐la街te凤<c著la场ss馅T首>st隆ru旋ctBT欧No胁de{BT公No巡寿de()污{lC捞hi童ld=rC土hi鲜ld=N敞UL老L;诵}BT圆No迷de(c则on协st饶T访&偏x){el庄em龄en天t=幕x;lC燥hi村ld=rC萄hi腊ld=N娃UL件L;}南京篮邮电喊大学炸计算兆机学停院BT戏No振de(c殊on吧st睡T余&朗x,BT丽No慌de<T积>*抬l党,BT迁No悠de<T辞>*监r恒){el彩em访en腹t=芝x;lC愁hi播ld=l糖;rC键hi芒ld=r变;}南京诵邮电甩大学鸭计算痒机学胁院T快el尿em截en臣t;BT漠No邪de<T匀>*lC布hi谨ld,续*rC壤hi馆ld;};lChildelementrChild南京脱邮电购大学腐计算必机学顶院程序5.耗2二叉烧树类te拳mp赠la夫te穗<c魔la秤ss菠T疫>cl友as砌sBi勺na夜ry解Tr挽ee{pu岁bl登ic该:Bi店na蝇ry次Tr候ee()翅{r歪oo胳t=卧NU详LL烛;}~Bi脆na愤ry吊Tr虫ee()侨{C稠le乔ar绢()待;}bo泰olIs个Em须pt的y()辛co眼ns园t;vo奸id简C霜le芹ar熄()架;南京将邮电忧大学莲计算棉机学罩院bo轧olRo蜘ot乓(T筒&抹x)掉co监ns泪t;vo钢idMa都ke保Tr潜ee(c振on挠st圈T范&屑e咬,Bi巾na鸦ry咽Tr色ee<T录>&嚼le单ft更,Bi撕na箩ry智Tr敞ee<T闪>&真r寻ig鞠ht辱);vo裤idBr条ea得kT喊re谎e(T炎&次e秒,Bi妹na割ry洒Tr财ee<T乏>&劫le墙ft剃,Bi苦na贞ry用Tr愁ee<T外>&俩r罗ig毙ht径);vo狗idPr少eO垒rd松er(v灵oi倾d声(*岁Vi格si暴t)网(T父&倒x)衰);vo僻idIn帆Or助de线r(v惜oi愤d堆(*妹Vi码si脆t)米(T圈&般x)桨);vo的idPo框st恢Or友de象r(v负oi剖d尼(*狸Vi从si悟t)吓(T耳&燃x)僚);南京边邮电扰大学鸡计算给机学元院pr是ot赖ec气te爬d:BT奖No姜de<T扰>*ro焰ot应;pr腾iv披at敲e:vo轿id才C亲le谣ar奇(BT寄No俘de<T柱>*值t坛);vo慢idPr赵eO毫rd保er(v此oi朋d彩(*框Vi差si溜t)饺(T陈&晃x)扣,BT楚No食de<T骗>*齐t)列;vo怠idIn挽Or陡de它r(v维oi碧d谜(*茅Vi绝si考t)慰(T论&侍x)暴,BT告No禽de<T黄>*杰t)扶;vo换idPo直st竹Or深de纳r(v需oi散d踪蝶(*幻玉Vi尾si祖t)搜(T期&你x)纲,BT贪No哄de<T赤>*景t)刷;};南京枪邮电暮大学布计算扫机学喉院5.桃2.想6实现占二叉慢树基泽本运早算程序5.伯3部分踩二叉仆树运切算te屋mp诉la绍te欣<宵cl皂as拣s艳T>bo茅olBi深na澡ry掀Tr菠ee<T蜘>:花:R弯oo岗t(辛T顽&x易)c刃on给st{if吴(r历oo我t)促{x=部ro赞ot吉->忘el厌em抗en吵t;re倘tu务rn犬t捕ru卸e;}el逝se陡r怀et典ur驻n为fa皇ls羊e;}南京山邮电伍大学困计算睛机学某院建立唐二叉送树南京熔邮电惭大学瞒计算称机学劳院南京熄邮电榴大学嫂计算预机学暑院te桥mp五la头te辫<c对la雷ss喷T倍>vo伙idBi舒na胞ry言Tr蝇ee<T寒>:击:Br构ea测kT百re垂e(T雄&狸x,Bi烟na画ry多Tr拉ee<T带>&尊le炭ft巡寿,Bi编na倾ry跨Tr晕ee<T傻>&厦ri恨gh先t){倦if详(!霞ro修ot腹||名&l夏ef茫t=舞=&亡ro扒ot亡||妄le舱ft廉.r痰oo海t|赔|r岂ig岭ht遣.r吐oo缓t)re虹tu振rn址;x振=洒ro锅ot济->学el刘em便en墨t;le芦ft棋.r惊oo艇t支=挂ro亲ot刃->lC黎hi柔ld;ri久gh仓t.蓝ro凭ot逮=抛r姻oo怒t-永>rC生hi伸ld;de奶le仇te犹r黑oo达t;ro鲜ot疏=厘N稠UL妄L;}DCEFAle喘ft绳.r狮oo脸t→←r还ig液ht达.r必oo剖troot=∧root南京魂邮电逼大学扶计算杏机学口院in伤tma矛in轨(v壶oi殿d){Bi宇na狱ry膏Tr缺ee<c要ha狱r>狸a,西b薪,舞x,汉y付,峡z;y.Ma救ke上Tr格ee('盼E'阴,袖a,僚b卷);z.Ma番ke剃Tr己ee('揉F'镇,絮a,坛b高);x.Ma督ke坚Tr汗ee('语C'垄,穴y,恐z瞎);y.Ma府ke影Tr浇ee('器D'软,言a,地b后);z.Ma露ke稍Tr零ee('齐B'坏,背y,捆x纱);z.Br具ea授kT朱re伶e(e橡,理y,泰x拔);re毯tu致rn矛0厕;}abxyzEyCxFzDyBz南京颜邮电客大学杨计算配机学负院5.叛3二叉扔树遍蚀历南京衔邮电鸣大学出计算赠机学厌院5.乞3.笛1二叉瞎树遍荣历算球法遍历一个棉有限汇的结但点集煤合,那意味驰着对士该集厕合中棉的每遣个结杰点访打问且幕仅访却问一同次。ABCDEF二叉组树遍缝历算疾法:(I演)先左震后右凤:VL极R,LV才R,LR村V(I铲I)先右源后左母:VR仓L,RV迁L,RL域V-逆南京欠邮电假大学肯计算励机学捉院先序密遍历清(VL缠R)若二奋叉树恼为空蹦,则牲空操寸作;否则(a)访问亭根结神点;(b)先序挑遍历券左子挨树;(c)先序恶遍历得右子饰树。先序裤遍历饱结点政次序未:B,D,C,E,FA,ABCDEF南京互邮电课大学盯计算阿机学庙院例子:先序鬼遍历序列威:A芹B课D夜G篇H另E跟C山Ft→t→t→t→t→t→t=∧t=∧t=∧t=∧t→t→t=∧t=∧t=∧ABCDEFGH南京免邮电脂大学共计算园机学惠院中序卡遍历纵(LV趴R)若二彩叉树散为空低,则绢空操锈作;否则(a)中序睬遍历冠左子惜树;(b)访问事根结企点;(c)中序寇遍历件右子阅树中序持遍历败结点宅次序阴:D,A,E,C,FB,ABCDEF南京俭邮电习大学埋计算达机学安院后序衣遍历争(LR讲V)若二法叉树欣为空限,则愧空操呈作;否则(a)后序矿遍历放左子木树;(b)后序弯遍历抗右子窜树;(c)访问唯根结涂点。后序赖遍历岂结点厦次序垃:B,E,F,C,AD,ABCDEF南京图邮电弹大学冲计算晌机学探院先序耍:中序鼠:后序句:ADEHFJGBCKHEEFGDABKCHJGFEDKCBA南京炭邮电我大学猴计算窗机学店院层次蚂遍历二叉咬树还知可以壤按层灿次遍押历。虑二叉伟树的恰层次急遍历怎为:凶首先厉访问哲第一柴层上耐的结柏点,御再访血问第惹二层限上的取结点售,依舍此类刮推,脸访问居二叉芬树上挤全部辨结点昼。二叉哲树按因层次是遍历:A,余D,枣B,侄G,珍C,命H,岁F,乡丰K,恒J,翻G南京剥邮电耍大学绢计算廊机学盒院层次详遍历ABCDEFGHIJK南京枪邮电嫂大学柄计算变机学群院指向山函数紫的指竹针变超量类型鲁名(*指针榜变量犯名)(参活数表顺)例如被,vo顾id印(程*Vi范si毯t)(鲜T&述x蔽)定义旦了一腔个函核数指联针参恋数Vi斑si每t。访问鸽元素矿函数te冬mp元la另te争<c剖la伸ss累T能>vo梅id煌V开is泉it护(T凭&海x){co职ut<<描x<讲<"匹";}5.慢3.急2二叉羊树遍选历的旋递归蒙算法南京际邮电素大学对计算畏机学贡院先序具遍历te已mp蹈la郊te滔<购cl蛇as为s星T>vo欧idBi得na谢ry卷Tr任ee<T避>:际:Pr炒eO棵rd栗er(vo秀id违(馒*V鬼is另it焰)(斤T&申x溜)){Pr赞eO产rd步er(Vi养si士t,r伤oo碎t)治;}南京耍邮电谅大学骗计算尺机学抹院(续)te驾mp逆la恭te摧<姐cl启as宁s份T>vo史idBi睬na爱ry婆Tr评ee<T恨>:耍:Pr获eO躁rd原er(vo奋id腰(从*V述is做it肥)(倾T&感x匠),BT桂No络de<T殿>*站t教){if钻(厚t)欺{Vi挪si侍t(削t-咬>e炉le结me营nt距);Pr颗eO茎rd脉er(V誓is密it呈,t功->lC系hi纵ld);Pr痕eO励rd块er(V航is欢it蝴,t腹->rC吃hi卫ld);}}南京敬邮电雾大学炼计算读机学富院5.磁3.撞3二叉百树遍糠历的场应用似实例求二导叉树男的结愚点数te效mp延la篇te饲<中cl饱as造s记T>in拜tBi勺na费ry许Tr村ee<T砌>:班:S抽iz请e(仓){re无tu豆rn倦S么iz扁e(详ro外ot诊);}南京德邮电蕉大学闸计算伸机学位院(续)te徐mp纷la窄te撤<辉cl针as敲s朗T>in灶tBi镇na抱ry会Tr联ee<T映>:艳:S举iz潮e(BT拉No宜de<T聪>泪*斯t){if乳(秤!t寺)采re晶tu厌rn答0胆;el绍sere爱tu米rnSi仆ze主(t符->lC舌hi俊ld)+律Si念ze蛛(t随->节rC熟hi努ld如)+匪1;}南京滋邮电吃大学丙计算乒机学牙院二叉惧树复珍制te为mp董la停te属<枯cl研as言s次T>BT洲No堂de<T厨>*Bi殃na窜ry饭Tr鹊ee<T鬼>:麻:Co叼py边(BT蚁No拼de<T庄>*传t辩){if残(秃!t积)速re止tu概rn扎N丑UL句L;BT些No段de<T杂>*共q掘=n部ewBT踏No缸de<T歌>(侧t-伪>e扒le短me世nt悠);q-拣>lC耕hi武ld=C域op个y(染t-决>lC思hi应ld);q-起>rC彩hi豆ld=C渴op戚y(遵t-旦>rC傲hi脆ld);re灵tu使rn唯q练;}南京栏邮电绕大学让计算云机学弄院5.摧5树和遵森林南京摧邮电蝇大学顺计算毁机学维院5.辞5.稿1森林乖与二匙叉树瓜的转糠换森林伤转换忙成二挎叉树:将森复林中房诚各树澡的根接用线揉连起牛来,效在树杂中,雨凡是胁兄弟号用线调连起破来;您去掉吹从双京亲到僻除了用第一分个孩转子以扭外的抖孩子舟的连饱线,凡只保章留双命亲到包第一勤个孩亲子的肢连线鼠;最诸后,汽使之冤稍微社倾斜客成习氏惯的肉二叉扫树形诱。其邻实,深这里等讨论杠的森性林是宾指有腥序森能林,草也可华将一戚般的毅森林回视为盐有序岛森林吼来对翅待。南京辉邮电霸大学误计算宫机学场院DEFGHJABCKDEFGHJABCKGACKGA==>CK==>树转例换二组叉树耀例子南京等邮电众大学思计算冶机学朝院ABCFFDEGHJABCFFDEGHJABCFFDEGHJ南京幻玉邮电志大学展计算技机学侦院森林长转换董成二戒叉树令F=(T1,T2,…,Tn)是森迟林,吗则F所对或应的印二叉艺树B(把F)为:(1)若F为空弯,则B为空蓬二叉绳树。(2)若F非空距,则B的根状是F中第膜一棵祸子树T1的根R1,B的左退子树余是R1的子垒树森鸽林(T11,T12,…,T1m)所对忽应的述二叉屯树,B的右北子树匀是森吉林(T2,…,Tn)所对朽应的柴二叉虑树。南京李邮电觉大学凳计算墙机学鬼院二叉度树转烛换成芝森林令B=(R,LB,RB)是二犁叉树违,R是根听,LB是左梨子树今,RB是右控子树饼,则B所对骂应的岂森林F=(T1,T2,…,Tn)为:(1)若B为空罢,则F为空扰森林馆。(2)若B非空适,则F的第示一棵姻树T1的根弄是二孔叉树压的根R,T1的根猫的子刮树森课林是B的左恭子树LB所对贡应的扑森林玻,F中的财其余槽树(T2,…,Tn)是B的右孙子树RB所对址应的熔森林阳。南京寄邮电额大学理计算遥机学呀院左孩子右兄弟ABCKDEFGHJADEHFJGBCK南京邻邮电辱大学铃计算没机学勤院南京交邮电罪大学隐计算神机学茂院ABCDEFGHIJABCDEFGHIJ南京惩邮电壤大学莲计算颠机学拴院南京疗邮电贤大学笛计算察机学境院5.鸣5.朝2树和仗森林瓣的存感储表茂示多重访链表选表示竿法设度献为m的树菠中有n个结腾点,总共党有n*肺m个指匹针域希,其秀中,很只有n-舰1个非芳空指雅针域角,其倘余n*组m-柳(n急-1苏)=葛n(赠m-甚1)否+1个指替针域还均为攀空。elementchild1child2childm南京茫邮电惕大学午计算屈机学谜院孩子诸兄弟坑表示疮法leftChildelementrightSibling南京亮邮电德大学粉计算慰机学岛院双亲荡表示击法南京虽邮电勿大学瓶计算贝机学亏院三重香链表纤表示尾法leftChildelementrightSiblingparent南京音邮电邪大学鞭计算饱机学棉院带右午链的拥先序产表示祖法南京斤邮电盈大学镰计算额机学坝院5.届5.璃3树和降森林颜的遍懂历按深漫度方笨向的植遍历由森肺林和席二叉犁树的荷转换否方法丹可知昌,森温林中秘第一忙棵树近的根断即二游叉树行的根否,第牵一棵淡树的执子树遣组成朵的森叶林对蜓应于送二叉虎树的层左子明树,具而除爹第一库棵树检外其冲余树枕组成立的森序林是光二叉编树的牛右子甩树,除所以民,对株森林罪的先众序遍赖历、搂中序过遍历杏和后某序遍它历的某结果判应与必对应耳二叉系树的刑先序桐、中出序和凯后序弃遍历罪的结梳果完脱全相盈同。南京革邮电骂大学喉计算毯机学棒院先序石遍历若森驱林为纵空,炕则遍慕历结衔束,否则较(a)访问阅第一善棵树岛的根钳;(b)按先委序遍凑历第阁一棵大树的俩根结震点的筛子树圈组成气的森禁林;(c)按先多序遍牢历除寸第一固棵树辈外其这余树鼓组成见的森旨林。A,B,雄C,冠K,霉D,领E,角H,何F,掌J,神G南京主邮电像大学李计算秀机学畜院中序折遍历若森角林为宵空,化则遍些历结伟束,否则也(a)按中躁序遍炒历第幕一棵卡树的洒根结狗点的昏子树牛组成锅的森尊林;(b)访问行第一量棵树雹的根路;(c)按中羞序遍熄历除附第一押棵树麦外其斜余树盆组成只的森疼林。B,K,推C,全A,倚H,敏E,搅J,换F,隆G,地D南京令邮电盖大学判计算柜机学列院后序课遍历若森我林为离空,悲则遍躁历结暮束,否则州(a)按后浊序遍校历第锈一棵误树的疾根结墓点的效子树密组成测的森粪林;(b)按后炭序遍位历除瘦第一沟棵树具外其泄余树永组成店的森去林恭;(c)访问唤第一颂棵树钟的根涂。K,C,捉B,H,J愧,G翻,F顶,E,D鸡,A南京惨邮电医大学版计算伟机学幕院按宽索度方徐向的增遍历对森幸林的她层次沟遍历端与对努应二寺叉树值的层先次遍曲历之碧间没丑有逻增辑的顽对应欠关系南京施邮电倾大学榆计算渡机学昏院5.怖6堆和栋优先展权队尾列南京咬邮电袄大学旺计算真机学郊院5.泛6.毙1民堆一个滚大小片为n的堆是一法棵包克含n个结弦点的剪完全表二叉宴树,介该树酬中每雪个结茅点的增关键庙字值阳大于分等于灯其双朝亲结勺点的厌关键饲字值辽。完摇全二屈叉树础的根柳称为堆顶,它乞的关膛键字裙值是温整棵弃树上崖最小疫的。掠这样谊定义细的堆以称为最小叶堆。还闷有最大额堆。南京恒邮电渠大学桶计算届机学城院南京丝式邮电抬大学握计算补机学室院堆是n个元特素的丛序列(k0,k1,,kn-孟1),当且鹿仅当蚀满足kik2i笛+1且kik2i赤+2,(蜂i=手0,衰1,,(n单-2碍)/欠2)时称务为堆(最小倡堆)。垮堆顶耀元素槐是序田列的忆第一陆个元侦素。南京辉邮电洒大学糊计算恒机学深院向下咸调整vo衬idAd斑ju航st域Do隐wn(T芝h者ea简p[止],in主tr,in亏tj)设少(he泳ap仙[r蕉+1仗],巾…,惭he馆ap浑[j岗])丑这j-殖r个位饱置上否的元券素已嗽满足骄特性谢:he掌ap怨[i吴]he优ap照[2班i+是1]且he助ap眼[i蔽]he棒ap馆[2希i+饲2]恩(虎i=要r+案1,定2,内…,(j断-1爽)/聋2)的条窑件,烤运行捏此函遍数将桃使得汤增加凡一个劈燕元素he撑ap认[r晨],(h竿ea英p[袜r]域,商he宫ap者[r六+1捕],饰…,工he剪ap钥[j拉])这j-奥r+沾1个元挨素也夹满足返堆的医特性锻。南京墓邮电州大学哪计算劳机学痒院南京墙邮电地大学刷计算币机学悬院te洒mp移la畅te辜<啊cl今as据s猪T>vo守idAd皆ju进st政Do饿wn(T伪h笨ea警p[诉],in肺tr,in仗tj){膀/刚/下标属从r+础1到j已满颠足堆岔的条块件in算tch甘il旬d=铸2*威r+勿1;//左孩钢子T造te缸mp级=h修ea照p[张r]守;wh唇il斧e精(比ch英il书d<泄=j凡)醋{if等(佳(痒ch弄il丢d鸣<j床)秧&&(寺he达ap智[c坛hi伙ld私]>愁he册ap错[c原hi效ld投+1寄])尝)罢ch谨il絮d+陪+;if肚(t增em搏p<药=h鞋ea斥p[详ch季il广d]惩)夏br项ea范k;he盏ap侵[(狼ch艰il吸d-尿1)竟/2割]=执he拾ap棉[c列hi叫ld劲];ch沉il复d=捐2*最ch类il掘d+警1;}he贫ap询[(密ch妈il舍d-醋1)欣/2草]=承te思mp坛;}南京雨邮电膨大学宵计算甲机学啦院te泊mp鹿la血te淋<星cl半as缠s纽奉T>vo锄idCr皇ea仗te压He随ap(T蓄h济ea威p[考],in亮tn){fo确r悬(in第ti=文(n清-2飞)/咱2;掏i>表-1殃;i樱--馅)Ad售ju趟st零Do镰wn停(h晨ea寇p,撕i,躬n-乱1);}n/师2-禾1=盟3,下标大范围迁:3,n-药1建堆丈的时浅间为O(附nl蒜og2n)。更深您入分娘析可慎知,建堆制时间棉复杂龄度为O(药n)。南京稻邮电俱大学烂计算器机学疑院南京舰邮电桂大学扔计算耀机学姻院5.陈6.狸2优先猪权队大列AD躬TAD逢TPr队io爆Qu膝eu沈e{数据劫:n0个元添素的眯最小茂堆。运算末:Cr势ea竭te己():建立讨一个营空队召列。De咬st等ro演y(胀):撤消牧一个瘦队列造。Is鸦Em链pt烫y():若队报列空倘,则吴返回tr刘ue;否则螺返回fa鹊ls涨e。Is脸Fu订ll():若队巧列满展,则降返回tr珠ue;否则旋返回fa励ls膝e。南京呜邮电蒸大学牙计算钓机学仓院Ap寸pe绳nd患(x描):元素顽值为x的新耽元素鹊入队钥列。Se喉rv慎e(慰x)欢:在x中返齿回具惑有最惑高优拿先权使的元陕素值,并从杰优先指权队之列中伸删除嘴该元缸素。}南京是邮电升大学漂计算呀机学巷院5.柔6.橡3优先棋权队扁列类te勒mp训la摘te筋<c珍la烛ss梁T愁>cl妖as旷sPr位io箭Qu给eu典e{pu法bl蓬ic岗:Pr为io征Qu车eu岂e(in型tmS坏iz尽e=2案0)物;~Pr称io克Qu编eu神e()爪{d执el到et叨e[节]起q;青};bo际olIs熔Em瞎pt漆y()泄c挨on且st种{r词et鞠ur慎n默n缸==糊0;脾}bo蜓olIs算Fu沫ll()丽c帐on必st挨{r鞠et图ur雁n揭n搞==ma搞xS沿iz肺e;}vo倡id轰A餐pp涨en宵d(炉co献ns姑t闭T魔&x腿);vo胳id伞S纺er葵ve独(T贯&脱x)姻;南京夜邮电伴大学变计算乘机学古院pr齐iv赛at说e:vo摇idAd烧ju威st码Do驳wn(in侵tr,in搭tj)融;vo个idAd着ju扎st写Up(in邪tj)役;T*奸q;in软tn,ma拼xS址iz漆e;};南京尊邮电麦大学万计算养机学笑院te量mp漆la唐te峰<荡cl穿as仇s啄T>Pr纸io向Qu拐eu茄e<T险>:燃:Pr厨io浙Qu邀eu顾e(in偿tmS迟iz彼e){ma煌xS效iz象e=mS厉iz酷e;n=巴0;q=容ne忘w遍T[ma饭xS艇iz奴e];}南京姐邮电两大学宋计算窝机学芬院5.拜6.壁4实现优先认权队马列vo汉idAd筐ju挺st喂Up(in访tj)设(q[旅0]执,…课,q蜂[j烫-1赴])这j位置支上的裕元素漂已满屿足特畏性:q[摔i]q[伍2i增+1增]且q[排i]q[鉴2i嫩+2嚷]紫(i茎=0闭,1微,,(j登-2奖)/证2),运行赏此函胳数将傍使得增增加炭一个雁元素q[通j],(q腰[0殖],浅q[朱1]挎,…嚷,q权[j演])这j+麻1个元路素也举满足点堆的浇特性爸。南京率邮电奥大学偿计算纷机学牺院te顷mp桌la违te淋<圆cl绑as璃s毁T>vo处idPr忍io差Qu版eu铲e<T讲>:原:Ad耳ju社st陶Up(in柄tj){in班ti=香j;食T低te米mp拦=q丧[i迷];wh赛il露e伏(毁i>阿0律&&段t脚em留p<撕q[步(i霞-1监)/塞2]坝){q[足i]盆=q盖[(匪i-君1)救/2能];i=贱(i殃-1诊)/铸2;}q[温i]发=t锣em愁p;}南京闹邮电理大学鹅计算妇机学灭院南京沃邮电泻大学埋计算榴机学歌院te犬mp朋la衔te绣<连cl容as雅s谅T>vo学idPr六io刮Qu仆eu丸e<T谋>:败:A民pp胃en摩d(揉co燃ns布t灰T搜&x傍){if私(Is低Fu胖ll()略)并{co拖ut<<梢“夏Ov瞧er闻fl你ow客”;re滨tu旷rn痒;}q[筹n+把+]耕=x虾;Ad盖ju韵st月Up萌(n躬-1撤);}南京姿邮电该大学事计算予机学走院te怪mp横la泳te矿<停cl倍as姑s赢T>vo棵idPr慢io选Qu埋eu识e<T假>:肾:S垫er礼ve呢(T仙&那x){if斗(Is蔑Em康pt夜y()冠){co浅ut<<采“夕Un捉de暴rf终lo疲w”扬;re我tu钟rn拉;}x=晶q[殃0]响;q疏[0继]=颗q[溉--临n]调;Ad喉ju妈st曾Do莫wn(0忍,与n-捎1)增;}南京多邮电托大学瓦计算致机学臭院南京郊邮电仁大学湖计算洋机学他院5.稻7哈夫有曼树卖和哈钢夫曼膏编码南京舌邮电秒大学笼计算虽机学杨院5.四7.态1树的漫路径巡寿长度定义5.衡7从根事到树非中任负意结冻点的路径膜长度是指秆从根用结点沃到该动结点内的路醋径上郑所包释括的惑边的叔数目举。树熊的内路猜径长充度定义呈为除雕叶子加结点铅外,妙从根阅到树性中其卵它所射有结棕点的充路径拴长度惑之和结。树的外路森径长精度是指困从根趴到树增中所津有叶每子结宣点的桑路径肃长度水之和芬。南京及邮电轻大学跪计算淋机学湿院定理5.归1设I和E分别菌是一静棵扩充槐二叉醋树的内过路径觉长度酒和外找路径饼长度怀,n是树蔑中非旧叶结苹点的隶数目耽,则E=I+2n。南京菊邮电坏大学框计算姑机学洪院证明:对剑非叶荒结点浩个数n作归锣纳法赢证明衫。初始印情况,令n=采1,I=0,E=泡2,有E=0+劈燕2=2。归纳标假设捉,非叶洽结点陈数为n-改1时该倾等式蔑成立蒜。归纳永步骤离,新二坛叉树毒的内庄路径酬长度研为I-既k,外路披径长魔度为E-锈2(万k+忙1)蚀+k。根据涉归纳锻假设服,我凤们有E-思k-蔬2=捆(I基-k滚)+腔2(纺n-恶1)因而炉有,E=I+2n南京纤邮电炸大学刚计算累机学梁院定义5.见8树的加权桐路径倘长度为树脚中所严有叶咳子结损点的溪加权纽奉路径方长度屑之和庸,记陵作其中伏,m是叶裂子结膊点的投个数拆,wk是第k个叶乎子结背点的谈权,lk是从巴根到廉该叶级子结子点的距路径赔长度纱。南京喘邮电冒大学坝计算搜机学笔院南京隐邮电攻大学赴计算掩机学李院5.腾7.坟2哈夫垒曼树祖和哈厅夫曼世算法哈夫爷曼算披法哈夫贺曼给吗出了男构造窃具有仁最小惭加权狠路径该长度溪的扩违充二奋叉树鉴的算枪法,剑称为哈夫先曼算伏法。用哈踢夫曼抱算法冶构造午的扩岛充二踪蝶叉树育称为哈夫缠曼编米码树或哈夫晌曼树。南京塑邮电距大学邪计算祸机学耗院南京氏邮电惭大学朱计算乱机学不院哈夫掠曼算捆法(1)用给齿定的防一组罩权值{w1,w2,…戴,wn},生成弱一个女有n棵树驱组成萌的森花林F=待{T1,T2,…,Tn},其中肾,每绿棵二砍叉树Ti只有蛾一个击结点趋,即坚权值现为wi的根读结点右(也熊是叶浸子)匠。(2)从F中选脉择两壤棵根准结点友权值哄最小洽的树陆,作盐为新霞树根郊的左请、右嚼子树罢,新淡树根扎的权欢值是羡左、脏右子放树根往结点梢的权妨值之材和。(3)从F中删蛮除这插两棵丝式树,仆另将断新二徐叉树练加入F中。(4)重概复(2)和编(3),堪直到F中只宋包含桐一棵吓树为艘止。南京默邮电使大学狭计算斩机学刑院南京菌邮电岂大学氧计算腿机学吹院5.旬7.咳3哈夫制曼树蚂类te割mp活la药te蹦<去cl芽as窑s秆T>cl白as睬sHf握mT帜re芝e:p咸ub羞li康cBi举na盐ry蜜Tr赞ee<T冻>{pu胁bl舒ic贺:op哀er通at鸣or姥T场()企co见ns杆t敏{r具et洒ur坝n私we躁ig情ht葬;}Tge换tW()蝇{r陈et赏ur悉n黑we握ig邀ht狸;}vo威idpu辱tW(c泛on师st印T遮&上x)石{硬we弄ig花ht晴=x条;}Se投tN共ul孤l()替{r脂oo著t=丢NU亡LL象;}pr血iv博at域e:T难we织ig册ht税;};南京齐邮电惩大学让计算即机学涝院5.晶7.气4构造换哈夫站曼树Hf辰mT纷re惕e<T鼓>Cr街ea挺te怖Hf若mT亮re蒙e(T煎w鸽[]隐,in羡tn)设数短组w[狠]中保宝存n个元凡素类姻型为T的权丛值,蚁函数盒返回判一棵贸构造茄成功辣的哈竭夫曼换树。南京且邮电钞大学示计算侨机学相院函数Cr宅ea味te酷Hf求mT已re嘱e的步梅骤:首先率构造n棵哈仍夫曼舰树对殃象,喷每棵屯树只倍有一渐个权慈值为w[币i]的根袋结点梳,且悦该对柴象的we接ig严ht为w[于i],将它劳们逐胆一加披入优判先权百队列锣。从优悬先权州队列芬中取邪出两嫩棵根挠结点扩值最还小和胆次最杰小的为哈夫元曼树x和y。以它漏们根错的权后值之浩和为掏根的陈权值觉,x和y为左筹、右效子树蓄构造虫一棵倦新哈状夫曼激树,拦并将吓新树己对象餐进优朋先权督队列权。重昏复执行行n-出1次,浑此时毫,队液列中租只剩卷下合语并完妻成的赏哈夫台曼树乞。从队共列中俱取出果构造思完毕桨的哈刑夫曼跑树,顶函数蕉返回到该哈淋夫曼貌树。南京毕邮电燥大学胁计算塑机学肠院te是mp斜la孕te虾<鸦cl挂as掘s挖T>Hf肝mT徐re编e<T木>Cr郑ea戒te舒Hf解mT征re百e(T筐w溉[]解,in警tn){Pr扑io冲Qu惩eu船e<Hf堵mT榜re乞e<T问>虾>pq(n府);//空优色先权谣队列Hf汁mT乎re挡e<T田>勇x,肺y,调z,甘ze梨ro街;//空哈族夫曼跃树fo含r元(in温ti=夜0;膀i<鸣n;馆i+未+)挑{//构造n棵一筛个结虑点哈痒树z.Ma锻ke球Tr鞭ee(w艘[i恐],窗x,监y)溪;z.pu前tW(w扯[i臭])渐;pq.A姐pp版en课d(左z)每;z.Se引tN吨ul骑l()这;}南京涨邮电琴大学寨计算摘机学元院fo乞r机(i睬=1扎;i吊<n歼;i葡++临){pq.S泰er残ve羡(x稀);pq.S尊er规ve聋(y真);z.Ma药ke孩Tr阴ee(x饺.ge泄tW()钻+y弦.ge蒙tW()读,x傻,y今);z.pu起tW(x怜.ge装tW()抵+y抬.ge那tW()浸);pq.A笛pp京en趋d(叹z)沾;z.Se凯tN哑ul垃l()伴;}pq.S命er买ve闲(z脚);re顺tu稿rn狡z坡;}南京顿邮电喇大学屋计算逼机学该院南京捆邮电勇大学康计算网机学颤院5.玩6.宝5哈夫厕曼编蓝码例如瓣,有调字符庆集S=据{A,B,C,D},权值W=岁{4,2,1,1},设有业电文AB蚕AC问AB傍DA绿,定长充编码嚷如:A:00,B:01,C:10,D:11编码们后的谷码文认长16位。南京峰邮电家大学议计算捉机学弯院例如筛,有晨字符遗集S=夜{A,B,C,D},权值W=询{4,2,1,1},用哈长夫曼图树设昼计的懂哈夫恨曼编总码如考图7-25所示稿。设论有电登文AB辉AC蛾AB起DA满足盈权值W假定柏的频拒率特分性,四则对新其经饺哈夫避曼编剑码后敲的码登文为01守00事11秘00标10邻11夺10,共14位二诵进制丽码位淹。如赤果采恐用定令长编舅码如晚:A:00,B:01,C:10,D:11,则其淡编码吼后的赖码文怨长16位。南京粗邮电继大学校计算幸机学普院01晚00蒜11份00再10乏11仿10AB养A童C壁A律B怨D傲A南京膊邮电趁大学伯计算菠机学屿院南京终邮电袜大学佣计算抛机学姥院5.贩8并查肺集和斩等价肝关系南京满邮电管大学郊计算执机学粘院5.焦8.曲1并查百集AD膨T并查舅集是由比一组俯互不傲相交蛋的集泪合组菊成的款一个码集合放结构左,并娃在此趣集合酱上定昼义了猛运算Un峰io崖n和Fi歌nd。这就而是说杯,并源查集巷中的垒元素名本身淋是集逐合,亚它们伟是某且个集希合的纷子集喇,并馆查集努是由见这些闲集合般组成飞的集共合结胃构。南京艺邮电俭大学巡寿计算姨机学隐院并查挖集设有歌集合V=断{0欠,1办,.倦.,就n-1},V1,V2

温馨提示

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

评论

0/150

提交评论