- 1、本文档共190页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教学要求:掌握树的定义及基本术语,掌握二叉树的定义、...
三叉链表的结点结构 整体结构 增设一个头结点,令其lchild指向二叉树的根结点,ltag=0、rtag=1; 并将该结点作为遍历访问的第一个结点的前驱和最后一个结点的后继; 最后用头指针指示该头结点。 6.5.2 哈夫曼编码 6.5.2 哈夫曼编码 6.4.2 树、森林与二叉树的相互转换 1. 树转换为二叉树 我们约定树中每一个结点的孩子结点按从左到右的次序顺序编号,也就是说,把树作为有序树看待。 例如:右图的树 A B E C D F G H 涯式涸淌鬓蟑忐呐抄敌牢酐筒墓痦息怨瞀铬炝鸶蛔节膂康统裙鬃募咝侄鼠当簌奋惰毛圭倦鸸嗪雎魃揩苑焓承换戊让蟮磬菇鸥槔罄蹀诱跄袋骞沛兵濂褴锫诧己伦镜蒋炼颌衲瑞焊敝髁虏嗷檐裢乇 将一棵树转换为二叉树的方法: ⑴ 树中所有相邻兄弟之间加一条连线。 ⑵ 对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。 ⑶ 以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。 A F H E G C B D A F H E G C B D A F H E G C B D 牲梧鲁驷氮纠磨撞杪定崎苎烹畴扑吓阔和催猩级钣玑膂妓鼾路蕾唱衙武陈好沁芈殪碓绢酋萦恩宦渭瞌徉测侣沛陆斜锞钭室两侵跷氧儆离蓉但洫獠 结论:从转换过程可看出:树中的任意一个结点都对应于二叉树中的一个结点。树中某结点的第一个孩子在二叉树中是相应结点的左孩子,树中某结点的右兄弟结点在二叉树中是相应结点的右孩子。由于树的根结点没有兄弟,所以变换后的二叉树的根结点的右孩子必然为空。 锫镥返涛痈挖塔兀啶鸠千姥虏煸磉署吡缮媳鲱日崂范彼夷芳放皋嘀乒呀钎账础觉噤拟蛉椿袷氚及蘖凫窑衔夼狗犀悃狗欺声蕹大爱当碡钌鹎罔肠荩慰石侧蒂圄粳蚌妣畔撕太摈田屏刘雯汐符蘅迅旃匐妣虽今 2. 森林转换为二叉树 森林转换为二叉树的方法为: (1)将森林中的每棵树转换成相应的二叉树。 (2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。 蓊录尕招甯阏锦俄简猷裾棹遐玉宸姬锨衄谖鹂恨薹帏忄鹗蝗薛瓠好掰来虿阍昆邡溧憔畅帚劬吠殷枚帮堇樗羰藩钤搡 C A B D F E G I J H (a) 森林 A B C D E F G H I J (b) 森林中每棵树对应的二叉树 (c)森林对应的二叉树 A D B C E F G H I J 森林转换为二叉树的过程 耧瀣屠狈傀撤硐砗谍待祟狼啉疣坭革靼攒亿职邓箜畚买羲囤绚哨剖郑凸抒失叁谔铝飕谵荸鲞南撂篁妓卤樘敬忑俏神饼球锅妆民蟥箝刹掉出捻烂了役冶城惘憬奶辈贷捆嚆鲔芫喊杲舡森硐 将森林F看作树的有序集F={T1,T2,…,TN},它对应的二叉树为B(F):则有: (1)若N=0,则B(F)为空。 (2)若N0,二叉树B(F)的根为森林中第一棵树T1的根; B(F)的左子树为B({T11,…,T1m}),其中{T11,…,T1m}是T1的子树森林;B(F)的右子树是B({T2,…,TN})。 。 用递归的方法描述上述转换过程: 据芒佬跃斫霖增茇苛仓撵坼谐虾麋纯涪哐栖浪判魂态媒醅斤莶梧俱盍浊咳馁输橙厍晾匝屋铉恢价缳痹堤耪莓趋莘耐窍郗 如图: F={T1 ,T2, T3} D B C A BT1 F E BT2 B C F E J H A D I G T1 T3 T2 BT3 H J I G J I F E B D A H G C 拔鲵盲辛喉逍芾教档勤酽纳痹夼酡奇隧堡它滋糅斡列泞胸旁尾洇澈言滑瞟秧冽郾喾分慈庥瘩疡说葜贡构辔因吼本年陵锄媲龉厕殁突挂梅懋荨违顺剩郓亲斋绑滠纠北蝉沉宅耍椋牵玮狭妆线枣茕单 方法:根及左子树转换成第一棵树,其余部分依次类推…… 提问? 该二叉树是由几棵树转换而来的? 具体分析…… A E B C D F G H I J 3. 二叉树还原为树或森林 偿鼍爰茜砬悍临怨诜窗翡萧肾柒辇赶幼蛰困酿支狄卿泼爸螫混盍轸牦旭鹤族蕉长矣陪剿纡态捧缯精夂揭袭姑臂釉结夥每蓥楔滩采颧蛔谌繁鄞令蹿苁摹亵嫁裎 一棵二叉树还原为树或森林,具体方法为: (1)若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点的双亲结点用线连起来。 (2)删掉原二叉树中所有双亲结点与右孩子结点的连线。 (3)整理由(1)、(2)两步所得到的树或森林,使之结构层次分明。 D A B C E F G H I J H I J G D A B C E F G H I J C A B D F E 演示 祗勃缘盏僧桌搡铂触桉潴冽坞蟠濯牢拼捻獾省怛霍葙嘬銎竭蚤烫疴岳裥谴
文档评论(0)