二叉树基本概念讲解及创建

一、简介

世上胸中有数以万万计的树木,we的领地格形式在在这里念书信息组织击中要害树,这是we的领地格形式实际生活中逆电流的树。领先,we的领地格形式念书的定单表,链表,栈、队列。可以被说成we的领地格形式的直线性组织,这执意we的领地格形式相同的单对单组织。,但在实际生活中,we的领地格形式常常碰见一对多到多的影响。。现今,让we的领地格形式视图一眼为了一对多的信息组织——树。。这么,树是什么?

二、树木基本概念简介

<1>树的明确

专业明确:(1)单独地单独杂种称为根。

(2)有点不和睦的子树。,这些子树也一棵树。。

浅显解说:

(1)树是由杂种和边结合的。

(2)在树的根杂种远处,每个杂种都有父杂种,只 可以涂多发展、成长的状况或高度杂种。

(3)根杂种中无父杂种

<2>树上的术语

杂种 : 父杂种 子杂种(Laozi和男性后裔) 叔伯兄弟

度: 具有子树的杂种数

金属薄片杂种:无子杂种的杂种

边 : 从单独杂种到另单独杂种的间隔

树的吃水:杂种数, 根杂种默许为第河床。。

整理 :树的摆布放置不克不及更衣。。

<3>树木混合物

普通树 : 一些杂种的子杂种的合计不受限度局限。,它高的普通树。。(子杂种可以有多个),如次图:

二叉树(关键点):一些杂种有两个再的子杂种。,而且子杂种的数量不克不及更衣。。

丛林:经过移除根杂种,树高的丛林。。

停止测试:在下面的线图中:

<1>A,B,H,i的度数是全部效果?

答:3 B : 2 H: 1 I: 0

<2>忘了带是什么?

K ,L,F,G,H,I,J

<3>树击中要害杂种F和I有全部效果层?

F在第三层。

M在四分之一的层

<4>这棵树的吃水是全部效果?

4

三、二叉树的特某个解说

<1>二叉树的属性解说

如次图是一颗二叉树,它有点特某个:

认真思考:一楼仍然全部效果? 1个

二层有全部效果层? 2 个

第三层有全部效果层? 4 ?

统治:杂种i接近末期的有2个N – 1平方。

属性1:二叉树的第i层上的包扎多有2的i – 1平方杂种。

认真思考:吃水为1的二叉树(遍历第河床)一共有权全部效果个杂种? 1个

吃水为2的二叉树(遍历到瞬间层)一共有权全部效果个杂种? 3个

吃水为3的二叉树(遍历到第三层)一共有权全部效果个杂种? 7个

统治:一本吃水K的书,超越2 K次 – 1杂种。

天性2:吃水为k的二叉树超越2 K次-1个包扎。

天性3:在恣意一棵二叉树中,忘了带的数量比度数为2的包扎的数量多1.

(意指程序如次所示):)

<2>二叉树木混合物

满二叉树:在一颗二叉树中,以防领地下分支的指令杂种都有左子树和右子树,,领地的金属薄片杂种都在同河床上。,这般的二叉树,we的领地格形式称之为满二叉树。

满二叉树的特某个:<1>金属薄片杂种只会出如今装底。。

<2>非叶杂种,子树的合计必然的是2。

<3>在同一吃水的二叉树中,满二叉树的杂种编号多。

完整二叉树:对一颗具有n个包扎的二叉树按层停止编号,以防数字是I

(1 <= i <= n)的包扎与同一吃水的满二叉树杂种编号为i的包扎

在二叉树击中要害放置完整相同,于是树,we的领地格形式称之为完整二叉树。

如次图所示。

停止测试:下面的树,是完整二叉树吗? 过错

总结:满二叉树必然是完整二叉树,完整二叉树不必然是满二叉树。

四、二叉树的内存

(1)按次内存[完整二叉树]

(按次内存的单词),若过错完整二叉树内存无意思。)

补助金有一棵树在下面,we的领地格形式若何将它保在阻止中?

思绪:先把替换成完整二叉树,于是编号。

这如同与为了仓库栈有关。。we的领地格形式可以地面数字在阻止中内存信息。,we的领地格形式依照数字(1)。,2,3,4,5)按次内存是OK的。!为了时候,我要问,僭言,we的领地格形式的M号码,你怎样确信we的领地格形式的3个好参加在下面?,而过错在we的领地格形式的M号的放置,we的领地格形式的延续内存是。(这种方法),we的领地格形式不克不及推断出树的组织。。

相应地,we的领地格形式的按次内存规章:

不理会什么树,we的领地格形式全市居民替换成完整二叉树。于是河床河床的从左给we的领地格形式的二叉树停止编号,于是内在单独阻止中。于是如次。

这么we的领地格形式内存的规章是什么呢?补助金单独杂种是I.,让we的领地格形式视图一看。。

领地剩的孩子都可能性是偶数吗?,领地的孩子都很奇怪。!

完整二叉树的特某个:

关于编号为i的杂种(i>=1):

(1)留守孩子们的在:2 * i <= n(杂种的编号),左孩子编号

(2)很的孩子们贮藏:2 * i + 1 <= n,右孩子编号 2 * i + 1

(2)链式内存[完整二叉树]

链式内存:明确杂种以控制摆布孩子们的地址。

认真思考:下面的程序,we的领地格形式的二叉树麝香明确多少的信息类型来控制包扎呢?

<4>二叉树的遍历

(1)层遍历:完全遍历层

(2)预序遍历:根 、左(左子书)、右(右子树)

(3)中序遍历:左(左子书) 、根 、右(右子树)

(4)后序遍历:左(左子书)、右(右子树)、根

规章:根杂种的出口,别的方式,遍历。

安排遍历:ABCDEFGHI

先序遍历:ABDGHCEIF

中序遍历:GDHBAEICF

后序遍历:GHDBIEFCA

完整二叉树的复回使被安排好思绪:

1。首次,创作行使职责MalCuxBB结包扎使被安排好怪人杂种,摆布两个孩子都是空的和填的。,we的领地格形式需求的信息

2.于是写单独使被安排好二叉树的行使职责create_binarytree()行使职责。必要malloc_bond

行使职责使被安排好杂种,于是判别如果有单独左孩子和单独右孩子。

2 *num <= n ,左孩子在 (num为we的领地格形式的包扎编号,n为we的领地格形式的包扎编号)

再次,必要CuraTyBiBayRead()使被安排好编号的子杂种。

2 *num + 1 <=n,右孩子内存。

再次,必要CuraTyBiBayRead()使被安排好编号的子杂种,后端根杂种。

二叉树互插文字:

二叉树的单独类型涂-哈夫曼树一

二叉树的四种引起

发表评论

电子邮件地址不会被公开。 必填项已用*标注