《离语》转载请注明来源:晨曦小说(www.chenxixsw.com)
设一棵二叉树有n个结点,则有n-条边(指针连线),而n个结点共有2n个指针域
(lld和rld),显然有n+个空闲指针域未用。则可以利用这些空闲的指针域来存放结
点的直接前驱和直接后继信息。
为避免混淆,对结点结构加以改进,增加两个标志域,如图所示。用这种结点结构构成
的二叉树的存储结构;叫做线索链表;指向结点前驱和后继的指针叫做线索;
2、线索二叉树的构建
按照某种次序遍历,加上线索的二叉树称之为线索二叉树。线索化二叉树:二叉树的线
索化指的是依照某种遍历次序使二叉树成为线索二叉树的过程。
线索化的过程就是在遍历过程中修改空指针使其指向直接前驱或直接后继的过程。
203年若是后序线索二叉树中的叶结点,且存在左兄弟结点y,则的右
线索指向的是。
a的父结点b以y为根的子树的最左下结点
的左兄弟结点yd以y为根的子树的最右下结点
204年若对如下的二叉树进行中序线索化,则结点的左、右线索指向的结点分
别是。
a.e、b.e、.d、d.b、考点4:树和二叉树()
、树转化为二叉树
对于一般的树,可以方便地转换成一棵唯一的二叉树与之对应。将树转换成二叉树在“孩
子兄弟表示法”中已给出,其详细步骤是:
加虚线。在树的每层按从“左至右”的顺序在兄弟结点之间加虚线相连。
2去连线。除最左的第一个子结点外,父结点与所有其它子结点的连线都去掉。
3旋转。将树顺时针旋转450,原有的实线左斜。
4整型。将旋转后树中的所有虚线改为实线,并向右斜。
这样转换后的二叉树的特点是:
二叉树的根结点没有右子树,只有左子树;
左子结点仍然是原来树中相应结点的左子结点,而所有沿右链往下的右子结点均是原来
树中该结点的兄弟结点。
由于二叉树和树都可用二叉链表作为存储结构,对比各自的结点结构可以看出,以二叉
链表作为媒介可以导出树和二叉树之间的一个对应关系。
从物理结构来看,树和二叉树的二叉链表是相同的,只是对指针的逻辑解释不同而已。
从树的二叉链表表示的定义可知,任何一棵和树对应的二叉树,其右子树一定为空。
2、二叉树转换成树
对于一棵转换后的二叉树,如何还原成原来的树?其步骤是:
()加虚线。若某结点是其父结点的左子树的根结点,则将该结点的右子结点以及沿右
子链不断地搜索所有的右子结点,将所有这些右子结点与结点的父结点之间加虚线相连,
如图()所示。
(2)去连线。去掉二叉树中所有父结点与其右子结点之间的连线,如图(b)所示。
(3)规整化。将图中各结点按层次排列且将所有的虚线变成实线,如图()所示。
3、森林转换成二叉树
转换步骤:
将f={t,t2,?,tn}中的每棵树转换成二叉树。
2按给出的森林中树的次序,从最后一棵二叉树开始,每棵二叉树作为前一棵二叉树的
根结点的右子树,依次类推,则第一棵树的根结点就是转换后生成的二叉树的根结点,如图
所示。
4、二叉树转换成森林
上述转换规则是递归的,可以写出其递归算法。以下给出具体的还原步骤。
去连线。将二叉树b的根结点与其右子结点以及沿右子结点链方向的所有右子结点的连
线全部去掉,得到若干棵孤立的二叉树,每一棵就是原来森林f中的树依次对应的二叉树。2二叉树的还原。将各棵孤立的二叉树按二叉树还原为树的方法还原成一般的树。
5、树的遍历
由树结构的定义可知,树的遍历有二种方法。
()先序遍历:先访问根结点,然后依次先序遍历完每棵子树。如图,先序遍历的次序是:
abdefgijk
(2)后序遍历:先依次后序遍历完每棵子树,然后访问根结点。如图,后序遍历的次序是:
dbfijgeka
树的先序遍历实质上与将树转换成二叉树后对二叉树的先序遍历相同。
树的后序遍历实质上与将树转换成二叉树后对二叉树的中序遍历相同
209年若将一棵树t转化为对应的二叉树bt,则下列对bt的遍历中,其遍历序列
与t的后根遍历序列相同的是()
a先序遍历b中序遍历后序遍历d按层遍历
2020年已知森林f及与之对应的二叉树t,若f的先根遍历序列是,b,,d,e,f,中
根遍历序列是b,,d,f,e,则t的后根遍历序列是:
a、b,,d,f,e,b、b,d,f,e,,、b,f,e,d,,d、f,e,d,,b,考点5:哈夫曼树()
、最优二叉树(ffn树)
结点路径:从树中一个结点到另一个结点的之间的分支构成这两个结点之间的路径。
2路径长度:结点路径上的分支数目称为路径长度。
3结点的带权路径长度:从该结点的到树的根结点之间的路径长度与结点的权(值)的乘积
4权(值):各种开销、代价、频度等的抽象称呼。
5树的路径长度:从树根到每一个结点的路径长度之和。
2、ffn树的构造
根据n个权值{w,w2,?,wn},构造成n棵二叉树的集合f={t,t2,?,tn},其中每棵二
叉树只有一个权值为w的根结点,没有左、右子树;
2在f中选取两棵根结点权值最的树作为左、右子树构造一棵新的二叉树,且新的二
叉树根结点权值为其左、右子树根结点的权值之和;
3在f中删除这两棵树,同时将新得到的树加入f中;
4重复2、3,直到f只含一颗树为止。
构造ffn树时,为了规范,规定f={t,t2,?,tn}中权值的二叉树作为新构造的二叉树
的左子树,权值大的二叉树作为新构造的二叉树的右子树;在取值相等时,深度的二叉树
作为新构造的二叉树的左子树,深度大的二叉树作为新构造的二叉树的右子树。
图是权值集合w={,3,4,6,5,5}构造ffn树的过程。所构造的ffn树的wpl
是:wpl=62+33+43+2+53+53=9。
3、ffn编码方法
由于每个字符都是叶子结点,不可能出现在根结点到其它字符结点的路径上,所以一个
字符的ffn编码不可能是另一个字符的ffn编码的前缀。
若字符集={,b,,d,e,f}所对应的权值集合为w={,3,4,6,5,5},如图所示,则字符
,b,,d,e,f所对应的ffn编码分别是:0,00,0,00,0,。
以字符集作为叶子结点,次数或频度集w作为结点的权值来构造ffn树。规定
ffn树中左分支代表“0”,右分支代表“”。
从根结点到每个叶子结点所经历的路径分支上的“0”或“”所组成的字符串,为该结
点所对应的编码,称之为ffn编码。最近转码严重,让我们更有动力,更新更快,麻烦你动动退出阅读模式。谢谢
姜辰穿越大梁国十六皇子的替身,为了模仿加深人设,姜辰只能含泪日日勾栏听曲。姜辰一心只想逃离京城,外出就藩。奈何天不遂人愿。打了兄弟,梁皇直夸打得好。接了解决流民重任,天天摆烂,结果惨遭身边人背刺,梁皇直夸有本事。正逢大梁北面匈奴来犯。满朝文武无一人敢战。为了被外派,姜辰不惜得罪所有人,直言:“此殿内,凡是擅议和谈者,当斩!”激进派以为自己已经够激进了,但没想到跟姜辰比,自己竟是保守派。最终姜辰还
其他 99万字 1个月前
简介:关于仙武大明,开局成为鬼修锦衣卫:“你有听说过‘百鬼夜行‘的故事吗?”锦衣昼出,阴兵借道。永乐一朝,当你走在京城街上的时候,总会有人会问你这个问题。九十九只恶鬼,数以计万的鬼灵。走在他们最前方的那道身影代表的就是一个传说。一个关于“百鬼夜行”的传说。“从那之后,大明就再也没有鬼了。”(男主锦衣卫+鬼修+有一丢丢疯批,不喜慎入。)(不严格卡境界,人物强弱看战力和表现力。)(无系统,有金手指,
其他 395万字 2分钟前
简介:关于被迫分家后,我带百亿物资去流放:别人开局流放薅空皇宫,她则是初来乍到业务不熟薅了个寂寞。一路被追杀好不容易活着到流放地,没过上几天母慈子孝的安稳日子,又开始战乱,逃荒,瘟疫,灾荒!别慌!人家过得生不如死,她人美路子野,有灵泉空间,有神兽加持,有徒弟守护,有秘密武器,一路还顺走狗皇帝金山银山富可敌国。狗皇帝不愿做人,她就只能拿出空间神器,来个回首掏,掏空皇宫自立门户……
耽美 606万字 5个月前
简介:关于鉴宝圣瞳:刚和女友分手,宋岳就觉醒了特殊能力。他的双眼居然可以透视了!从此人生逆袭,改变一切。跟我分手?你别后悔!我只想低调发财!等等……为什么这透视眼总不听话,喜欢自己乱看?
都市 185万字 5天前
五年前,林惊羽得到一块九龙神玉,却无法承受住神玉中的九龙之力,只能自行封印修为与神智,成了一个傻子。问鼎青州的林家一夜间遭遇灭顶之灾,留下七个绝色嫂子,然而,这七个嫂子却要一起嫁给林惊羽。林惊羽惊呆了,这么多嫂子,自己的雨露,够嫂子们均沾吗?
其他 110万字 5个月前
简介:关于这福气,我要了:一觉醒来,苏四儿(苏月眠)发现自己躺在古代的茅草屋,下午就要卖身为奴,这日子还能过下去?给肉吃,给衣穿,给钱花,古代的人口中介也太好了,这是卖身为奴的人配有的待遇吗?后来她才发现大衍朝的等级秩序与“福气”有关。人说,物极必反,一路走来,她充分体验到福气的背后尽是秘密,世界的运转与芸芸众生相互牵引,她自以为的正义这一刻瓦解了,但她是一个做实事的人。人的一生会遇到很多人,但
耽美 173万字 5个月前