二叉树及其性质

孩子兄弟表示法模型:

可比较(双亲孩子表示法模型结构)


数据域data
孩子结点指针 firstchild 兄弟结点指针 rightsib

firstchild :指向该结点的第一个孩子

rightsib :指向该结点的右兄弟

特点:

?能够表示任意的树形结构

?每个结点中有且仅有三个指针域(如上)

?每个结点的结构简单,只有孩子结点指针和兄弟结点指针形成树杈

该表示法的优点:可以把一棵复杂的树变成一个二叉树。

二叉树定义:

是由n (n>=0)个结点的有限集合,该集合或者为空集,或者是由一个根结点和两棵互不相交的分别称为根结点的左子树和右子树的二叉树组成。

二叉树最多有两个孩子的树:左子树、右子树

满二叉树:

如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树

特点:

?叶子只能出现在最下一层,出现在其它层就不可能达到平衡

?非叶子结点的度一定是2

?在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多

图:满二叉树

完全二叉树:

对一棵具有N个结点的二叉树按层编号,如果编号为 I (0< i < N)的结点与同样深度的满二叉树中的编号 I 结点在二叉树中的位置完全相同,则这课二叉树称为完全二叉树

图:完全二叉树  举例

注:观察每个结点按照满二叉树的结构逐层顺序编号,没出现空挡,则是完全二叉树。

一些特点:

?叶子结点只能出现在最下两层

?最下层的叶子一定集中在左部连续位置

?倒数第二层,若有叶子结点,一定都在右部连续的位置

?如果结点度为1,则该结点只有左孩子,即不存在只有右子树的情况

?同样结点数的二叉树,完全二叉树的深度最小

斜树:

所有的结点都只有左子树的二叉树叫左斜树,所有结点都是只有右子树的二叉树叫右斜树。树的的一种特殊的表现形式

二叉树的性质:

有助于设计更为巧妙的算法

性质1:

在二叉树的第 i 层最多有个结点(i >1);

性质2:

深度为K的二叉树最多有个结点(K >= 0);

性质3:

对任何一棵二叉树,如果其叶结点有 N0 个,度为2的结点有 N2 个,则 N0 = N2 +1.

注:根据边与结点的关系

N0 :度为0 的结点--0条边

N1 :度为1的结点--一条边

N2 :度为2的结点--两条边

二叉树中度最大为2,则二叉树中总边数 N 为 0*N0 + 1*N1 +2*N2

即 总边数 N =  1*N1 +2*N2

又只有根结点没有输入边,其他结点都有一个输入边,则总边数 N 又可以表示为 (N0+N1+N2) - 1

所以 1*N1 +2*N2 = N = (N0+N1+N2) - 1

化简得 N0 = N2 + 1

由此性质可以快速了解到 度不同的结点之间的关系。

性质4:

具有 n 个结点的完全二叉树的高度为最大整数

完全二叉树有可能为满二叉树,也可能不满。

则结点数范围是 n > ; 同时 n <=

所以

两边同时加 1 得:(可以联想到二叉树的情况)

同时取对数得:

又K为整数,所以

性质5:

一棵有n个结点的二叉树,按层次对结点进行编号(从左到右,从上到下),

则任意结点 i 有:

如果 i = 1; 则结点i是二叉树的根

如果 i > 1;则其双亲结点为 [i/2] ;  [...]:表示不大于此数的最大整数

如果2i <= n;  则结点i的左孩子为2i;

如果2i > n;  则结点i无左孩子;

如果2i+1 <= n;  则结点i的右孩子为2i+1;

如果2i > n;  则结点i无右孩子;

可通过下图验证性质5

时间: 2024-10-11 20:26:15

二叉树及其性质的相关文章

数据结构笔记_二叉树的性质

二叉树的性质: 性质1.在二叉树第i层上至多有2^(i-1)个结点(i>=1). 性质2.深度为k的二叉树上至多含2^(k)-1个结点(k>=1). 性质3.对任何一颗二叉树,若它含有n0个叶子结点,n2个度为2的结点,则必存在关系式n0=n2+1. 证明: 设二叉树上的结点总数为n,则n=n0+n1+n2,其中n1为度为1的结点数. 又二叉树上分支总数b=n1+2*n2; 而b=n-1(因为除根结点外,每个结点都有一个指向它的分支)=n0+n1+n2-1,由此,n0=n2+1: 两类特殊二叉

二叉树 二叉树的性质 存储结构 遍历二叉树 C实现二叉树的创建和遍历 线索二叉树

定义 二叉树(binary tree)是n(n>=0)个结点的有限集合,该集合为空集合称为空二叉树,或者有一个根结点和两棵互不相交的,分别称为树根结点的左孩子树和右孩子树组成. 二叉树的特点 每个结点最多有两棵子树,所以二叉树总没有度大于2的结点 左子树和右子树是有顺序的,次数不能任意颠倒 即使树中某结点只有一棵子树,也要区分是左子树还是右子树 特殊的二叉树 1. 斜树 所有的结点都只有左子树的二叉树称为左斜树; 所有的结点都只有右子树的二叉树称为右斜树; 这两者统称为斜树 2. 满二叉树 在一

二叉树的性质和常用操作代码集合

二叉树的性质和常用操作代码集合 性质: 二叉树的性质和常用代码操作集合 性质1:在二叉树的第i层上至多有2^i-1个结点 性质2:深度为k的二叉树至多有2^k - 1个结点 性质3:对任意一棵二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0 = n2 + 1 满二叉树:深度为k且有2^-1个结点的树 完全二叉树:深度为k,结点数为n的二叉树,如果其结点1~n的位置序号分别与等高的满二叉树的结 点1~n的位置序号一一对应,则为完全二叉树. 性质4:具有n的结点的完全二叉树深度为lo

数据结构学习之二叉树(性质总结)

1.二叉树结点编号 在一棵n个结点的完全二叉树中,从树根起,自上层到下层,每层从左至右,给所有结点编号,能得到一个反映整个二叉树结构的线性序列. 编号特点 2.二叉树性质

树与二叉树之二--二叉树的性质与存储

二叉树的定义 1)每个节点最多只有两颗子树,即二叉树中结点的度只能为0.1.2: 2)子树有左右之分,不能颠倒. 二叉树的五种基本状态: 1)空二叉树 2)只有根节点 3)只有左子树,右子树为空 4)只有右子树,左子树为空 5)既有左子树,又有右子树 满二叉树: 所有的分支结点都有左孩子和右孩子结点,并且叶子结点都集中在二叉树的最下一层 完全二叉树: 通俗的说,一颗完全二叉树一定是由一颗满二叉树从右至左从下至上,挨个删除结点所得到的. 二叉树的主要性质 性质1: 非空二叉树上叶子结点数等于双分支

数据结构-第09周作业(二叉树的性质)

二叉树的性质

二叉树的相关性质

性质一:在二叉树的第i层上至多有2^(i-1)个结点(i>=1) 性质二:深度为k的二叉树至多有2^(k-1)个结点(k>=1) 性质三:对任意一颗二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则 n0=n2+1 满二叉树:深度为k,且有2^(k-1)个结点的二叉树.    在满二叉树中,每层结点都是满的,即每层节点都具有最大结点数. 完全二叉树:深度为k,结点数为n的二叉树,如果其结点1~n的位置序号分别于满二叉树的节点1~n的位置序号一一对应,则为完全二叉树. 可见,满二叉树必

二叉树总结(一)概念和性质

一.树的概念 树是一些点的集合,这个集合可以为空,若不为空,则它是由一个根节点和0个或多个为空的子树组成,且每个子树都被一条来自根节点的有向边相连. 树叶:没有儿子的节点:兄弟:具有相同父亲的节点:类似还有祖父和孙子节点. 路径:节点n1,n2,n3,...,nk的一个序列,使得对于1 <= i <= k节点ni是ni+1的父亲:路径的长为路径上边的数量,即K+1. 深度:某节点的深度为树根到该节点的唯一路径的长度. 层次:深度相同的节点在同一层中,深度值为层数. 树高度:叶节点的深度最大值.