二叉检索树的构造

网上有关“二叉检索树的构造”话题很是火热,小编也是针对二叉检索树的构造寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

1、23为根结点

2、15<23,所以15为23左孩子

3、9<23,9<15,9为15的左孩子

4、17<23,17>15,17为15的右孩子

5、26>23,26为23的右孩子

6、18<23,18>15,18>17,18为17的右孩子

7、24>23,24<26,24为26的左孩子

二叉排序树如下图

23

/ \

15 26

/ \ /

9 17 24

\

18

最优二叉树算法的构造算法

基本概念用五个标志域来存储结点的结构 ?以这种结点结构构成的二叉链表作为二叉树的存储结构叫做线索链表(Threaded Linked Lists) 线索 指向结点前驱和后继的指针 线索二叉树(Threaded Binary Tree) 加上线索的二叉树 线索化 对二叉树以某种次序遍历使其变为线索二叉树的过程 在结构示意图中 指针用实线表示 线索通常用虚线表示 线索二叉树的存储结构 二叉树按中序线索化的算法?线索二叉树上常用运算

 查找某结点*p在指定次序下的前趋和后继结点 在中序线索二叉树中 查找指定结点*p的中序后继结点和中序前趋结点 1 若结点*p的左子树(或右子树)非空 则*p的中序前趋(或中序后继)是从*p的左孩子(或右孩子)开始往下查找 由于二叉链表中结点的链域是向下链接的 所以在非线索二叉树中亦同样容易找到*p的中序前趋(或中序后继) 2 若结点*p的左子树(或右子树)为空 则在中序线索二叉树中是通过*p的左线索(或右线索)直接找到*p的中序前趋(或中序后继) 但中序线索一般都是 向上 指向其祖先结点 而二叉链表中没有向上的链接 因此在这种情况下 对于非线索二叉树 仅从*p出发无法找到其中序前趋(或中序后继) 而必须从根结点开始中序遍历 才能找到*p的中序前趋(或中序后继)

 在后序线索二叉树中 查找指定结点*p的后序前趋结点 1 若*p的左子树为空 同p >lchild是前趋线索 指示其后序前趋结点 2 若*p的左子树非空 则p >lchild不是前趋线索 当*p的右子树非空时 *p的右孩子必是其后序前趋

 在后序线索二叉树中 查找指定结点*p的后序后继结点 1 若*p是根 则*p是该二叉树后序遍历过程中最后一个访问到的结点 2 若*p是其双亲的右孩子 则*p的后序后继结点就是其双亲结点 3 若*p是其双亲的左孩子 但*p无右兄弟时 *p的后序后继结点是其双亲结点 4 若*p是其双亲的左孩子 但*p有右兄弟 则*p的后序后继是其双亲的右子树中第一个后序遍历到的结点 它是该子树中 最左下的叶结点

遍历线索二叉树

lishixinzhi/Article/program/sjjg/201311/23149

从上述算法中可以看出,F实际上是森林,该算法的思想是不断地进行森林F中的二叉树的“合并”,最终得到哈夫曼树。

在构造哈夫曼树时,可以设置一个结构数组HuffNode保存哈夫曼树中各结点的信息,根据二叉树的性质可知,具有n个叶子结点的哈夫曼树共有2n-1个结点,所以数组HuffNode的大小设置为2n-1,数组元素的结构形式如下: weight lchild rchild parent 其中,weight域保存结点的权值,lchild和rchild域分别保存该结点的左、右孩子结点在数组HuffNode中的序号,从而建立起结点之间的关系。为了判定一个结点是否已加入到要建立的哈夫曼树中,可通过parent域的值来确定。初始时parent的值为-1,当结点加入到树中时,该结点parent的值为其双亲结点在数组HuffNode中的序号,就不会是-1了。

构造哈夫曼树时,首先将由n个字符形成的n个叶结点存放到数组HuffNode的前n个分量中,然后根据前面介绍的哈夫曼方法的基本思想,不断将两个小子树合并为一个较大的子树,每次构成的新子树的根结点顺序放到HuffNode数组中的前n个分量的后面。

下面给出哈夫曼树的构造算法。

const maxvalue= 10000; {定义最大权值}

maxleat=30; {定义哈夫曼树中叶子结点个数}

maxnode=maxleaf*2-1;

type HnodeType=record

weight: integer;

parent: integer;

lchild: integer;

rchild: integer;

end;

HuffArr:array[0..maxnode] of HnodeType;

var ……

procedure CreatHaffmanTree(var HuffNode: HuffArr); {哈夫曼树的构造算法}

var i,j,m1,m2,x1,x2,n: integer;

begin

readln(n); {输入叶子结点个数}

for i:=0 to 2*n-1 do {数组HuffNode[ ]初始化}

begin

HuffNode[i].weight=0;

HuffNode[i].parent=-1;

HuffNode[i].lchild=-1;

HuffNode[i].rchild=-1;

end;

for i:=0 to n-1 do read(HuffNode[i].weight); {输入n个叶子结点的权值}

for i:=0 to n-1 do {构造哈夫曼树}

begin

m1:=MAXVALUE; m2:=MAXVALUE;

x1:=0; x2:=0;

for j:=0 to n i-1 do

if (HuffNode[j].weight

begin m2:=m1; x2:=x1;

m1:=HuffNode[j].weight; x1:=j;

end

else if (HuffNode[j].weight

begin m2:=HuffNode[j].weight; x2:=j; end;

{将找出的两棵子树合并为一棵子树}

HuffNode[x1].parent:=n i; HuffNode[x2].parent:=n i;

HuffNode[n i].weight:= HuffNode[x1].weight HuffNode[x2].weight;

HuffNode[n i].lchild:=x1; HuffNode[n i].rchild:=x2;

end;

end;

关于“二叉检索树的构造”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[努力啊大安蕾]投稿,不代表九五号立场,如若转载,请注明出处:https://wap.9www.net/zlan/202601-1067.html

(3)

文章推荐

  • 生活中有哪些矛盾

    网上有关“生活中有哪些矛盾”话题很是火热,小编也是针对生活中有哪些矛盾寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、一个年轻人对大发明家爱迪生说:"我有一个伟大的理想,那就是我想发明一种万能溶液,它可以溶解一切物品。"爱迪生听罢,惊奇地问:"什么!那你

    2026年01月09日
    12303
  • 梦见卫星是什么意思

    网上有关“梦见卫星是什么意思”话题很是火热,小编也是针对梦见卫星是什么意思寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。梦见卫星是什么意思梦见卫星是什么意思,睡觉的时候做的梦是不会无缘无故的产生,梦境中的事情往往是人

    2026年01月09日
    10312
  • 如何搞好儿童的口腔保健问题呢?

    网上有关“如何搞好儿童的口腔保健问题呢?”话题很是火热,小编也是针对如何搞好儿童的口腔保健问题呢?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。儿童真是身体发育的时候,很多儿童在长牙期间的时候,有很多不好的习惯会对牙齿造成危害,我们对牙齿的保健不仅只是外表的

    2026年01月09日
    10320
  • 增强班级凝聚力的有效方法

    网上有关“增强班级凝聚力的有效方法”话题很是火热,小编也是针对增强班级凝聚力的有效方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 导语:俗话说:?人心齐,泰山移。?作为一个班集体,凝聚力的大小直接影响着学生是否心情愉快,是否能更加积极、轻松,充满激情地投

    2026年01月10日
    12311
  • 上海保健老师上岗证考试难吗

    网上有关“上海保健老师上岗证考试难吗”话题很是火热,小编也是针对上海保健老师上岗证考试难吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。不难。幼儿园保健老师需要保健老师上岗证,保健老师负责幼儿园卫生工作的检查、督促、评估,每月公布检查结果,制定学期卫生保健工

    2026年01月10日
    9322
  • 水草灯三基色和全光谱

    网上有关“水草灯三基色和全光谱”话题很是火热,小编也是针对水草灯三基色和全光谱寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。现在市面上有几种可以用于植物补光的灯,1.LED,(红蓝,或全可见光谱)2.三基色,3.小太阳(这个还带紫外线和红外线)4.稀土灯(

    2026年01月10日
    9323
  • 历史典故及主人公

    网上有关“历史典故及主人公”话题很是火热,小编也是针对历史典故及主人公寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、爱鹤失众——姬赤公元前668年,卫惠公的儿子姬赤成为卫懿公后,不思富国强兵之道,整天喜欢养鹤,甚至荒唐到给鹤封官位,享官禄,百姓怨声载道。

    2026年01月11日
    8303
  • 古代农业发展的因素有哪些

    网上有关“古代农业发展的因素有哪些”话题很是火热,小编也是针对古代农业发展的因素有哪些寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。(1)生产工具和耕作技术的改进(2)统治阶级注意调整统治政策,推行有利于农业经济发展的措施,土地资源得到进一步开发利用,荒地开

    2026年01月11日
    8303
  • 墨西哥的动物

    网上有关“墨西哥的动物”话题很是火热,小编也是针对墨西哥的动物寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。有尾目Caudata钝口螈科Ambystomatidae?钝口螈属Ambystoma两栖动物下图为?墨西哥钝口螈Ambystoma?

    2026年01月11日
    6316
  • 栀子花的

    网上有关“栀子花的”话题很是火热,小编也是针对栀子花的寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。栀子花栀子花又名栀子、黄栀子,为龙胆目、茜草科、栀子属的常绿灌木,喜欢温暖湿润和阳光充足的环境,较耐寒,耐半阴,怕积水,要求疏松、肥沃和酸性的沙壤土,原产于中

    2026年01月11日
    4323
  • 为什么碳14能用于测量物质的年龄

    网上有关“为什么碳14能用于测量物质的年龄”话题很是火热,小编也是针对为什么碳14能用于测量物质的年龄寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。如何用c-14的半衰期测某物质的年龄由于其半衰期达5,730年,且碳是有机物的元素之一,生物在生存的时候,由于

    2026年01月12日
    3303
  • 六年级的数学题

    网上有关“六年级的数学题”话题很是火热,小编也是针对六年级的数学题寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。分值与题量不成比例哟!一、1、(20)的4倍是80,是(40)的2倍,(它的1/8)的是10。2、比80米多3/8是(110)米;300吨比(35

    2026年01月12日
    2313

发表回复

本站作者才能评论

评论列表(3条)

  • 努力啊大安蕾的头像
    努力啊大安蕾 2026年01月12日

    我是九五号的签约作者“努力啊大安蕾”

  • 努力啊大安蕾
    努力啊大安蕾 2026年01月12日

    本文概览:网上有关“二叉检索树的构造”话题很是火热,小编也是针对二叉检索树的构造寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、23为根结点2...

  • 努力啊大安蕾
    用户011211 2026年01月12日

    文章不错《二叉检索树的构造》内容很有帮助