二叉检索树的构造

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

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://blog.9www.net/zlan/202601-1067.html

(6)

文章推荐

  • 人之常识最简单三个解释

    网上有关“人之常识最简单三个解释”话题很是火热,小编也是针对人之常识最简单三个解释寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。“三才者,天地人。三光者,日月星。”这句话出自《三字经》,三才是指天、地、人三个方面,三光就是太阳、月亮、星星。寓意我们要了解日常

    2026年01月09日
    11306
  • 文言文《论语五则》和《诫子书》的全文解释和重点字义及中心

    网上有关“文言文《论语五则》和《诫子书》的全文解释和重点字义及中心”话题很是火热,小编也是针对文言文《论语五则》和《诫子书》的全文解释和重点字义及中心寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。原文曾子曰:“吾日三省吾身为人谋而不忠乎?与朋友交而不信乎?传

    2026年01月09日
    12309
  • 清朝后宫都有什么规矩?

    网上有关“清朝后宫都有什么规矩?”话题很是火热,小编也是针对清朝后宫都有什么规矩?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。清朝后妃等级由低到高是:答应,常在,贵人,嫔,妃,贵妃,皇贵妃,皇后。第一位的是皇后,只许一个,主持内宫事务。第二是妃,其中皇

    2026年01月09日
    13311
  • 什么叫激光灌顶

    网上有关“什么叫激光灌顶”话题很是火热,小编也是针对什么叫激光灌顶寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。一、中国园林雕塑的审美特征雕塑艺术在人类发明的历史上,几乎和文明同时诞生,原始的陶俑雕塑在世界各地均有发现,他们距今已有三万到一万年的悠远

    2026年01月09日
    12323
  • 傣族剪纸是如何传承的

    网上有关“傣族剪纸是如何传承的”话题很是火热,小编也是针对傣族剪纸是如何传承的寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。傣族剪纸传承的方式如下:一、社会教育传承1、举办剪纸比赛为让大众了解傣族剪纸,在庆典活动、传统节日里举办比赛,提高傣族剪纸文化融入生产

    2026年01月11日
    10317
  • 麻烦白砂糖可以做发糕吗-

    网上有关“麻烦白砂糖可以做发糕吗?”话题很是火热,小编也是针对麻烦白砂糖可以做发糕吗?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。白砂糖可以做发糕吗?当然可以,有红糖发糕,就有白糖发糕。正宗的白糖发糕吃起来是甜甜的,糯糯的,还有一股清香味道。我们准备大约2

    2026年01月11日
    9318
  • 居住小区调查报告英语翻译

    网上有关“居住小区调查报告英语翻译”话题很是火热,小编也是针对居住小区调查报告英语翻译寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。Residentialenvironmentdesign.Asmallenvironmentaldesigninc

    2026年01月11日
    9320
  • 浪漫的古风表白情书

    网上有关“浪漫的古风表白情书”话题很是火热,小编也是针对浪漫的古风表白情书寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。什么是古风情书,古风情书该怎么写?情书要动人心弦,应该在欲语无从的心情下提笔,在不知所云的心情下结束。下面我为大家整理了古风表白

    2026年01月11日
    9323
  • 培养数感《一亿有多大》教学案例

    网上有关“培养数感《一亿有多大》教学案例”话题很是火热,小编也是针对培养数感《一亿有多大》教学案例寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。〖教学内容〗人教版《义务教育课程标准实验教科书数学》四年级上册第33-34页〖教学目标〗1.经历探究过程,

    2026年01月12日
    7301
  • 揭秘恐龙灭绝真正的原因

    网上有关“揭秘恐龙灭绝真正的原因”话题很是火热,小编也是针对揭秘恐龙灭绝真正的原因寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。#请回答,你的年度知识点#对于恐龙出现的年代大部分科学家并不是完全确定。普遍认为恐龙是距今两亿五千万年前出现。

    2026年01月12日
    3317
  • 颜色用英语怎么说?

    网上有关“颜色用英语怎么说?”话题很是火热,小编也是针对颜色用英语怎么说?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。颜色的英文是(color)。读音:英式读音:[?k?l?(r)]美式读音:[?k?l?r]释义:颜色是指物体所呈现的可见光的感知属性。它是

    2026年01月12日
    3320
  • 关于夏天的英文短句

    网上有关“关于夏天的英文短句”话题很是火热,小编也是针对关于夏天的英文短句寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 想知道关于夏天的英文句子有哪些吗?下面我整理了一些关于夏天的英文句子,供大家学习参考。 1.Itwasasummeraft

    2026年01月13日
    1309

发表回复

本站作者才能评论

评论列表(3条)

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

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

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

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

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

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