二叉树五个性质

二叉树五个性质

1. 在二叉树的第i层上最多有2 i-1个节点。(i>=1)

2. 2.二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)

3. .n0=n2+1 n0表示度数为0的节点n2表示度数为2的节点

4. 在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整。

5.若对含n 个结点的完全二叉树从上到下且从左至右进行1 至n 的编号,则对完全二叉树中任意一个编号为i 的结点:

(1) 若i=1,则该结点是二叉树的根,无双亲, 否则,编号为[i/2] 的结点为其双亲结点;

(2) 若2i>n,则该结点无左孩子,否则,编号为2i 的结点为其左孩子结点;

(3) 若2i+1>n,则该结点无右孩子结点,否则,编号为2i+1 的结点为其右孩子结点。

二叉树习题及答案

1.设一棵完全二叉树共有699 个结点,则在该二叉树中的叶子结点数? 1根据二叉树的第i层至多有2A(i - 1)个结点;深度为k的二叉树至多有2A k - 1 个结点(根结点的深度为1)”这个性质: 因为2A9-1 < 699 < 2A10-1 , 所以这个完全二叉树的深度是10,前9 层是一个满二叉树, 这样的话,前九层的结点就有2A9-1=511 个;而第九层的结点数是2A(9-1)=256 所以第十层的叶子结点数是699-511=188 个;现在来算第九层的叶子结点个数。由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188 个,所以应该去掉第九层中的188/2=94 个;所以,第九层的叶子结点个数是256-94=162,加上第十层有188 个,最后结果是350 个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点 (叶结点) 都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699 是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1 比如图: 此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2 的结点和度为0 的结点,而二叉树的性质中有一条是: nO=n2+1 ; nO指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349 ; n0=350 2.在一棵二叉树上第 5 层的结点数最多是多少一棵二叉树,如果每个结点都是是满的,那么会满足2A(k-1)1 。所以第5 层至多有2A(5-1)=16 个结点! 3.在深度为5 的满二叉树中,叶子结点的个数为答案是16 ~ 叶子结点就是没有后件的结点~ 说白了~ 就是二叉树的最后一层~ 深度为K 的二叉树~ 最多有2Ak-1 个结点~ 最多有2A(k-1) 个结点~ 所以此题~ 最多有2A5-1=31 个结点~ 最多有2A(5-1)=16 个叶子结点~ 4.某二叉树中度为2 的结点有18 个,则该二叉树中有几个叶子结点?结点的度是指树中每个结点具有的子树个数或者说是后继结点数。 题中的度为2 是说具有的2 个子树的结点;二叉树有个性质:二叉树上叶子结点数等于度为2 的结点数加1。 5.在深度为7 的满二叉树中,度为2 的结点个数为多少,就是第一层只有一个节点,他有两个子节点,第二层有两个节点,他们也都有两个子节点以此类推,所以到第6 层,就有2的5次方个节点,他们都有两个子节点最后第7 层都没有子节点了。因为是深度为7 的。 所以就是1+2+4+8+16+32 了 2深度为1的时候有0个 深度为2的时候有1个 深度为3的时候有3个 深度为4的时候有7个 深度为n的时候有(2的n-1次方减1 )个 6?—棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为?

二叉树的4个普遍性质和2个特殊性质的完善推导过程

二叉树的5个性质 1、在二叉树的第k 层上,最多有2k-1(k ≥1)个结点 证明:在二叉树的第i 层上最多有2 i-1 个节点 1层 1个 20 2层 2个 21 3层 4个 22 ..... i 层 2 i-1个 2、二叉树中如果深度为k,那么最多有2k -1个节点 证明:在具有相同深度的二叉树中,仅当每一层都含有最大结点数时,其树中结点数最多。因此利用性质1可得,深度为k 的二叉树的结点数至多为: 20+21+…+2k-1=2k -1 故命题正确。 3、在任意一棵二叉树中,若终端结点的个数为n 0,度为2的结点数为n 2,则n o =n 2+1。 . 证明:n 0=n 2+1 n 0表示度数为0的节点 n 2表示度数为2的节点 推导过程 根据两个公式 1). n=n 0+n 1+n 2 n 表示二叉树中的节点总个数,n 1表示度数为1的节点个数 2). n-1=2n 2+n 1 通过观察二叉树我们可知,除了根节点之外,其余的任何节点都有一个入口分支(或其他节点都有一个入口分支),那么节点的总分支数等于节点个数减一,度数为2的节点有2个出口分支,度数为一的有1个出口分支,度数为0的节点没有出口分支 所以总的分支个数为 2n 2+n 1,因此有n=2n 2+n 1+1, 3).比较n=n 0+n 1+n 2和n=2n 2+n 1+1两式,可得n 0=n 2+1。 5.在完全二叉树中,具有n 个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整。 证明: 根据性质 2: 假设深度为k 的满二叉树的节点个数一定为2k -1,那么n=2k -1推得满二叉树的深度数为k=log 2(n+1);——深度为m 的二叉树最多有2k -1个节点,即是满二叉树的情形。 设完全二叉树是具有n 个节点的二叉树,若按层序编号那么其编号与同样深度的满二叉() 11122111n m m n a q S q --===---() 11111220n k k n a a q k ---==?=≥

全国计算机等级考试二级公共基础之树与二叉树1

全国计算机等级考试二级公共基础之树与二叉树 1.6 树与二叉树 1.6.1 树的基本概念 树是一种简单的非线性结构。在树这种结构中,所有元素之间的关系具有明显的层次关系。用图形表示树这种数据结构时,就象自然界中的倒长的树,这种结构就用“树”来命名。如图: 在树结构中,每个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根(如R)。 在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点(如W,Z,A ,L,B,N,O,T,H,X)。 在树结构中,一个结点拥有的后件个数称为结点的度(如R的度为4,KPQDEC 结点度均为2)。 树的结点是层次结构,一般按如下原则分层:根结点在第1层;同一个层所有结点的所有子结点都在下一层。树的最大层次称为树的深度。如上图中的树深度为4。R结点有4棵子树,KPQDEC结占各有两棵子树;叶子没有子树。 在计算机中,可以用树结构表示算术运算。在算术运算中,一个运算符可以有若干个运算对象。如取正(+)与取负(-)运算符只有一个运算对象,称为单目运算符;加(+)、减(-)、乘(*)、除(/)、乘幂(**)有两个运算对象,称为双目运算符;三元函数f(x,y,z)为 f函数运算符,有三个运算对象,称为三目运算符。多元函数有多个运算对象称多目运算符。 用树表示算术表达式原则是: (1)表达式中的每一个运算符在树中对应一个结点,称为运算符结点

(2)运算符的每一个运算对象在树中为该运算结点的子树(在树中的顺序从 左到右) (3)运算对象中的单变量均为叶子结点 根据上面原则,可将表达式:a*(b+c/d)+c*h-g*f表示如下的树。 树在计算机中通常用多重链表表示,多重链表的每个结点描述了树中对应结点的信息,每个结点中的链域(指针域)个数随树中该结点的度而定。 1.6.2 二叉树及其基本性质 1. 什么是二叉树 二叉树是很有用的非线性结构。它与树结构很相似,树结构的所有术语都可用到二叉树这种结构上。 二叉树具有以下两个特点: (1)非空两叉树只有一个根结点 (2)每个结点最多有两棵子树,且分别称该结点的左子树与右子树。 也就是说,在二叉树中,每一个结点的度最大为2,而且所有子树也均为二叉树。二叉树中的每一个结点可以有左子树没有右子树,也可以有右子树没有左子树,甚至左右子树都没有。

习题8(二叉树的定义和性质)

习题8(二叉树的定义和性质) 一、选择题 1、除个别结点外,其余结点只能有1个前驱结点,可有任意多个后继结点,这样的结构为( B )。 A)线性结构 B)树形结构 C)图形结构 D)拓扑结构 2、在下述结论中,正确的是( D )。 ①只有一个结点的二叉树的度为0 ②二叉树的度为2 ③二叉树的左右子树可任意交换 ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树 A)①②③ B)②③④ C)②④ D)①④ 3、下列有关树的概念错误的是( B )。 A)一颗树中只有一个无前驱的结点 B)一颗树的度为树中各个结点的度数之和 C)一颗树中,每个结点的度数之和等于结点的总数减1 D)一颗树中每个结点的度数之和与边的条数相等4、对任一颗树,设它有n个结点,这n个结点的度数之和为d,下列关系式正确的是( D )。 A)d=n B)d=n-2 C)d=n+1 D)d=n-1 5、下列说法中正确的是( D )。 A)二叉树中任何一个结点的度都为2 B)二叉树的度为2 C)任何一棵二叉树中至少有一个结点的度为2 D)一棵二叉树的度可以小于2 6、以二叉链表作为二叉树的存储结构,在具有n个结点的二叉链表中(n>0),空链域的个数为( C )。 A)2n-1 B)n-1 C)n+1 D)2n+1 7、树最适合用来表示( C )。 A)有序数据元素 B)无序数据元素 C)元素之间具有分支层次关系的数据 D)元素之间无联系的数据8、由4个结点可以构造出多少种不同的二叉树( C )。 A)4 B)5 C)14 D)15 9、一个二叉树具有( A )种基本形态。 A)5 B)4 C)3 D)2 10、二叉树的第I层上最多含有结点数为( C )。 A)2I B)2I-1-1 C)2I-1 D)2I -1 11、深度为5的二叉树至多有( C )个结点. A)16 B)32 C)31 D)10 12、一个满二叉树,共有n个结点,其中m个为树叶,则( B )。 A)n= m+1 B)m=( n +1)/2 C)n =2 m D)n =2 m 13、深度为h的满m叉树的第k层有( A )个结点。(1=

二叉树

第六章树 第一部分:知识点 知识脉络: 重点:二叉树的性质、:I树的各种遍历方法及它g1所确定的序列问的关系、 二又树上的基本运算算法 的实现、二又树的线索化方法,构造赂夫曼树的方法。 难点:二叉树上各种算法,特别是遍历的非递归算法的设计。 一、二叉树的遍历的非递归算法 1.先序遍历 先将根结点入栈,然后只要栈不空,先出栈,然后沿着左子针依次访问沿途经过的子树根结点,同时将右指针进栈(以便递归访问左子树后访问右子树),如此重复,直至栈为空。 void PreOrderBiTree(BitTree T) { SqStack S; BitTree p; InitStack(&S); /* 初始化一个空栈*/ Push(&S,T); /* 根结点指针进栈*/ while(!EmptyStack(S)) /* 栈为空时算法结束*/ { Pop(S,&p); /* 弹栈,p指向(子树)根结点*/ while(p) { printf("%d ",p->data); /* 访问根结点*/ if(p->rchild) Push(S,p->rchild); /* 非空的右指针进栈*/ p=p->lchild; /* 沿着左指针访问,直到左指针为空*/ }

} 2.中序遍历 先沿着左指针走到最左下的结点同时将沿途经过的(子树)根结点指针进栈。当走到空指针时,出栈得到一个结点并访问,然后跳到右子树上。如此重复,直到指针为空并且栈为空为止。 void InOrderBitree(BitTree T) { SqStack S; BitTree p; InitStack(&S); /* 初始化一个栈*/ p=T; /* p指向根结点*/ while(p||!EmptyStack(S)) /* 当p为空且栈为空时算法结束*/ { while(p) { Push(S,p); p=p->lchild; /* 沿左指针走,沿途经过的(子树)根结点指针进栈*/ } Pop(S,&p); printf("%d ",p->data); /*当左指针为空时弹栈并访问该结点(子树根结点) */ p=p->rchild; /* 向右跳一步到右子树上继续进行遍历过程*/ } } 3.后序遍历 void PostOrderBiTree(BitTree T) { SqStack S; BitTree p,q; InitStack(S); p=T;q=NULL; while(p||!EmptyStack(S)) { if(p!=q) { while(p) { Push(S,p); if(p->lchild) p=p->lchild; else p=p->rchild; } } if(S->top==S->base) break; GetTop(S,&q); if(q->rchild==p) { p=Pop(S); printf("%d ",p->data); } else p=q->rchild; }

树和二叉树的基本知识

树和二叉树的基本知识 树是一种非线性的数据结构,用它能很好地描述有分支和层次特性的数据集合。树型结构在现实世界中广泛存在,如把一个家族看作为一棵树,树中的结点为家族成员的姓名及相关信息,树中的关系为父子关系,即父亲是儿子的前驱,儿子是父亲的后继;把一个国家或一个地区的各级行政区划分看作为一棵树,树中的结点为行政区的名称及相关信息,树中的关系为上下级关系,如一个城市包含有若干个区,每个区又包含有若干个街道,每个街道又包含有若干个居委会;把一本书的结构看作是一棵树,树中的结点为书、章、节的名称及相关信息,树中的关系为包含关系。树在计算机领域中也有广泛应用,如在编译系统中,用树表示源程序的语法结构;在数据库系统中,树型结构是数据库层次模型的基础,也是各种索引和目录的主要组织形式。在许多算法中,常用树型结构描述问题的求解过程、所有解的状态和求解的对策等。 在树型结构中,二叉树是最常用的结构,它的分支个数确定,又可以为空,具有良好的递归特性,特别适宜于程序设计,因此我们常常将一般树型结构转换成二叉树进行处理。 第一节树 一、树的定义 一棵树(tree)是由n(n>0)个元素组成的有限集合,其中: 1.每个元素称为结点(node); 2.有一个特定的结点,称为根结点或树根(root); 3.除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合T0,T1,T2,……T m-1,而每一个子集T i又都是一棵树(称为原树的子树subtree)。 图1 图1就是一棵典型的树结构。从树的定义可以看出: 1.树是递归定义的,这就决定了树的操作和应用大都是采用递归思想来解决; 2.一棵树中至少有1个结点,这个结点就是根结点,如上图中的结点1; 3.只有根结点没有前趋结点,其余每个结点都有唯一的一个前趋结点; 4.所有结点都可以有0或多个后继结点;

各类型二叉树例题说明

5.1树的概念 树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树 1.树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。 2.树的深度——组成该树各结点的最大层次,如上图,其深度为4; 3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林; 4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。 5.树的表示 树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。如上图可写成如下形式: (A(B(E(K,L),F),C(G),D(H(M),I,J))) 5. 2 二叉树 1.二叉树的基本形态: 二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全二叉树——(e) 注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。 2.两个重要的概念: (1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树; (2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。 如下图: 完全二叉树 1页

树和二叉树

树和二叉树 树形结构(非线性结构):1)节点之间有分支;2)具有层次关系。 应用:自然界的树;人类社会的家谱和行政组织机构;计算机中的编译(用树表示源程序的语法结构)、数据库系统(用树组织信息)、算法分析(用树描述执行过程)。 定义:是n(n>=0)个节点的有限集。 若n=0,称为空树; 若n>0,则它满足如下两个条件; 1)有且仅有一个特定的称为根的节点; 2)其余节点可分为m(m>=0)个互不相交的有限集T1,T2,T3.....Tm,其中每一个集合本身又是一棵树,并称为根的子树。 树的其他表示方式: 还可以用广义表的形式表示(A(B(D))(C(E)(F)))。 树的基本术语: 根节点:非空树中无前驱节点的节点。 节点的度:节点拥有的子树数。 树的度:树内各节点的度的最大值。 叶子(终端节点):度为0的节点 分支节点(非终端节点):根节点以外的分支节点称为内部节点。 孩子、双亲:节点的子树的根称为该节点的孩子,该节点称为孩子的双亲。

兄弟节点: 节点的祖先:从根节点所经分支上的所有节点。 节点的子孙:以某节点为根的子树中的任一节点。 树的深度(高度):树中最大层次(根节点为第一层)。 有序树:树中节点的各子树从左至右有次序() 无序树:树中的节点没有次序。 森林:是m (m>=0)棵互不相交的树的集合。一棵树可以看成是一个特殊的森林。给森林中的各子树加上一个双亲节点,森林就变成了树(树一定是森林,森林不一定是树)。 二叉树的性质和存储结构 性质1、在二叉树的第i 层上至多有2^(i -1)个节点(i>=1)。至少1个 归纳基:当i=1时,只有一个根节点,2^(i -1)=2^0=1,命题成立。 归纳假设:设对所有的j (1<=j=1)。至少有k 个节点 由性质1可见,深度为k 的二叉树的最大节点数为 ∑ =-k i i 1 )1(^2=2^k -1 性质3:对任何一棵二叉树T ,如果其终端节点数为n0,度为2的节点数为n2,则 n0=n2+1。 总边数为B ,B=n -1; B=n2*2+n1*1; n=n2*2+n1*1+1 总节点数为n ,n=n2*2+n1*1+1; 又 n0=n2+1 满二叉树 ·一棵深度为k 且有2^k -1个节点的二叉树称为满二叉树。 ·特点:1)每一层上的节点数都是最大节点数(即每层都满,不能空的);2)叶子节点全部在最底层。 ·对满二叉树节点位置进行编号: ·编号规则:从根节点开始,自上而下,自左而右。 ·每一节点位置都有元素。 ·满二叉树在同样深度的二叉树中节点个数最多;满二叉树在同样深度的二叉树中叶子节点个数最多。

二叉树习题及答案

1.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数? 1根据“二叉树的第i层至多有2^(i ? 1)个结点;深度为k的二叉树至多有2^k ? 1个结点(根结点的深度为1)”这个性质: 因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度就是10,前9层就是一个满二叉树, 这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数就是2^(9-1)=256 所以第十层的叶子结点数就是699-511=188个; 现在来算第九层的叶子结点个数。 由于第十层的叶子结点就是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188个,所以应该去掉第九层中的188/2=94个; 所以,第九层的叶子结点个数就是256-94=162,加上第十层有188个,最后结果就是350个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图: 完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699就是奇数,叶结点层以上的所有结点数为保证就是奇数,则叶结点数必就是偶数,这样我们可以立即选出答案为B! 如果完全二叉树的叶结点都排满了,则就是满二叉树,易得满二叉树的叶结点数就是其以上所有层结点数+1比如图: 此题的其实就是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2的结点与度为0的结点,而二叉树的性质中有一条就是:n0=n2+1;n0指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349;n0=350 2.在一棵二叉树上第5层的结点数最多就是多少 一棵二叉树,如果每个结点都就是就是满的,那么会满足2^(k-1)1。 所以第5层至多有2^(5-1)=16个结点! 3、在深度为5的满二叉树中,叶子结点的个数为 答案就是16 ~ 叶子结点就就是没有后件的结点~ 说白了~ 就就是二叉树的最后一层~ 深度为K的二叉树~ 最多有2^k-1个结点~ 最多有2^(k-1)个结点~ 所以此题~ 最多有2^5-1=31个结点~ 最多有2^(5-1)=16个叶子结点~ 4、某二叉树中度为2的结点有18个,则该二叉树中有几个叶子结点? 结点的度就是指树中每个结点具有的子树个数或者说就是后继结点数。 题中的度为2就是说具有的2个子树的结点; 二叉树有个性质:二叉树上叶子结点数等于度为2的结点数加1。 5、在深度为7的满二叉树中,度为2的结点个数为多少, 就就是第一层只有一个节点,她有两个子节点,第二层有两个节点,她们也都有两个子节点以此类推,所以到第6层,就有2的5次方个节点,她们都有两个子节点 最后第7层都没有子节点了。因为就是深度为7的。 所以就就是1+2+4+8+16+32了

二叉树习题及答案(考试学习)

1.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数? 1根据“二叉树的第i层至多有2^(i ? 1)个结点;深度为k的二叉树至多有2^k ? 1个结点(根结点的深度为1)”这个性质: 因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度是10,前9层是一个满二叉树, 这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数是2^(9-1)=256 所以第十层的叶子结点数是699-511=188个; 现在来算第九层的叶子结点个数。 由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188个,所以应该去掉第九层中的188/2=94个; 所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图: 完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B! 如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图: 此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2的结点和度为0的结点,而二叉树的性质中有一条是:n0=n2+1;n0指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349;n0=350 2.在一棵二叉树上第5层的结点数最多是多少 一棵二叉树,如果每个结点都是是满的,那么会满足2^(k-1)1。 所以第5层至多有2^(5-1)=16个结点! 3.在深度为5的满二叉树中,叶子结点的个数为 答案是16 ~ 叶子结点就是没有后件的结点~ 说白了~ 就是二叉树的最后一层~ 深度为K的二叉树~ 最多有2^k-1个结点~ 最多有2^(k-1)个结点~ 所以此题~ 最多有2^5-1=31个结点~ 最多有2^(5-1)=16个叶子结点~ 4.某二叉树中度为2的结点有18个,则该二叉树中有几个叶子结点? 结点的度是指树中每个结点具有的子树个数或者说是后继结点数。 题中的度为2是说具有的2个子树的结点; 二叉树有个性质:二叉树上叶子结点数等于度为2的结点数加1。 5.在深度为7的满二叉树中,度为2的结点个数为多少, 就是第一层只有一个节点,他有两个子节点,第二层有两个节点,他们也都有两个子节点以此类推,所以到第6层,就有2的5次方个节点,他们都有两个子节点

二叉树练习题答案

一、下面是有关二叉树的叙述,请判断正误 (∨)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中 只有n—1个非空指针域。 ( X )2.二叉树中每个结点的两棵子树的高度差等于1。 (∨)3.二叉树中每个结点的两棵子树是有序的。 ( X )4.二叉树中每个结点有两棵非空子树或有两棵空子树。 ( X)5.二叉树中所有结点个数是2k-1-1,其中k是树的深度。 ( X )6.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 ( X )7.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最 多能有2i-1个结点。 (∨)8.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 ( X )9. 具有12个结点的完全二叉树有5个度为2的结点。 二、填空 1.由3个结点所构成的二叉树有 5 种形态。 2. 一棵深度为6的满二叉树有 26-33 个分支结点和 32 个叶子。 3.一棵具有257个结点的完全二叉树,它的深度为 9 。

4. 设一棵完全二叉树具有1000个结点,则此完全二叉树有500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。(分析:完全二叉树中三种节点个数n0,n1,n2,其中 n1为0或1;n0=n2+1;总节点个数N=n0+n1+n2=n0+n1+n0-1=2*n0-1+n1.由此推 出当完全二叉树中节点个数为偶数时n1为1,否则为0,则可计算本题) 5. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。因而二叉 树的遍历次序有六种。最常用的是三种:前序法(即按N L R次序),后序法(即 按 LRN 次序)和中序法(也称对称序法,即按L N R次序)。这三种方法 相互之间有关联。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 FEGHDCB 。 6. 用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是 (1+2)*3+3*2+(4+5)*2= 33 。 7.一个深度为h的二叉树最多有 2h-1 结点,最少有 h 结点。

二叉树的性质

二叉树的性质 二叉树具有以下重要性质: 性质1二叉树第i层上的结点数目最多为2i-1(i≥1)。 证明:用数学归纳法证明: 归纳基础:i=1时,有2i-1=20=1。因为第1层上只有一个根结点,所以命题成立。 归纳假设:假设对所有的j(1≤j

证明:因为二叉树中所有结点的度数均不大于2,所以结点总数(记为n)应等于0度结点数、1度结点(记为n1)和2度结点数之和: n=n o+n1+n2 (式子1) 另一方面,1度结点有一个孩子,2度结点有两个孩子,故二叉树中孩子结点总数是: n l+2n2 树中只有根结点不是任何结点的孩子,故二叉树中的结点总数又可表示为: n=n1+2n2+1 (式子2) 由式子1和式子2得到: n o=n2+1 满二叉树和完全二叉树是二叉树的两种特殊情形。 1、满二叉树(FullBinaryTree) 一棵深度为k且有2k-1个结点的二又树称为满二叉树。 满二叉树的特点: (1)每一层上的结点数都达到最大值。即对给定的高度,它是具有最多结点数的二叉树。 (2)满二叉树中不存在度数为1的结点,每个分支结点均有两棵高度相同的子树,且树叶都在最下一层上。 2、完全二叉树(Complete BinaryTree) 若一棵二叉树至多只有最下面的两层上结点的度数可以小于2,并

计算机二级考点归纳(树与二叉树)

?1、树的基本概念 树(tree)是一种简单的非线性结构。在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点。每一个结点可以有多个后件,它们称为该结点的子结点。没有后件的结点称为叶子结点。 在树结构中,一个结点所拥有的后件个数称为该结点的度。叶子结点的度为 0。在树中,所有结点中的最大的度称为树的度。 ? 2、二叉树及其基本性质 (1)二叉树的定义 二叉树是一种很有用的非线性结构,具有以下两个特点: ①非空二叉树只有一个根结点; ②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。 由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。另外,二叉树中的每个结点的子树被明显地分为左子树和右子树。在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。 (2)二叉树的基本性质 二叉树具有以下几个性质: 性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点; 性质2:深度为m的二叉树最多有2m-1个结点; 性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。 性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。 在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉树的叶子结点的先后顺序都是不变的。 3、满二叉树与完全二叉树 满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值; 在最后一层上只缺少右边的若干结点。 对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1。 完全二叉树具有以下两个性质: 性质5:具有n个结点的完全二叉树的深度为[log2n]+1。 性质6:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……, n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论:

二叉树性质练习题

8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是() A.4 B.5 C.7 D.8 若根结点的层数为1,则具有n个结点的二叉树的最大高度是( ) A.n B. C. n+1 D.n/2 在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( ) A.4 B.5 C.6 D.7 已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为() A. 0 B. 1 C. 48 D. 49 除第一层外,满二叉树中每一层结点个数是上一层结点个数的() A.1/2倍B.1倍 C.2倍D.3倍 .已知一棵完全二叉树有64个叶子结点,则该树可能达到的最

大深度为() A.7 B.8 C.9 D.10 高度为5的完全二叉树中含有的结点数至少为( ) A.16 B.17 C.31 D.32 有64个结点的完全二叉树的深度为( )(根的层次为1)。 A. 8 B. 7 C. 6 D. 5 8.若一棵二叉树有11个叶子结点,则该二叉树中度为2的结点个数是() A.10 B.11 C.12 D.不确定的 二叉树中第5层上的结点个数最多为( ) A.8 B.15 C.16 D.32 若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是() A.4 B.5 C.7 D.8 .一棵含18个结点的二叉树的高度至少为( )

A.3 B.4 C.5 D.6 下列陈述中正确的是( ) A.二叉树是度为2的有序树 B.二叉树中结点只有一个孩子时无左右之分 C.二叉树中必有度为2的结点 D.二叉树中最多只有两棵子树,并且有左右之分 假设一棵完全二叉树含1000个结点,则其中度为2的结点数为___________。 任意一棵完全二叉树中,度为1的结点数最多为________。 已知一棵完全二叉树中共有768结点,则该树中共有个叶子结点。 在含100个结点的完全二叉树中,叶子结点的个数为___________。 已知完全二叉树T的第5层只有7个结点,则该树共有____________个叶子结点。 一棵含999个结点的完全二叉树的深度为_______。 结点数为20的二叉树可能达期的最大高度为_________。

二叉树

1、一棵完全二叉树共有360个结点,则在该二叉树中度为1的结点个数为______。 本题考查知识点是二叉树基本性质。 完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。根据二叉树性质,设完全二叉树共有n个结点。如果从根节点开始,按层序(每一层从左到右)用自然数1,2……,n给结点进行编号,则对于编号为k的结点有如下结论。 若k=1,则该结点为根结点。若k>1,则该结点的父结点编号为INT(k/2),其中INT表示取整意思。最后一个结点360的父结点编号为180。若2k<=n,则编号为k 的结点的左结点编号为2k,否则该结点无左子结点(显然也没有右子结点)。若2k+1<=n,则编号为k的结点的右子结点编号为2k+1,否则该结点无右子结点。在本题中,2*180<=360,条件满足,故该结点无左子结点,由于该二叉树是完全二叉树,显然180是最后一个父结点,且没有右子结点。 所以本题答案为B。 2、设二叉树共有150个结点,其中度为1的结点有10个,则该二叉树中的叶子结点数为______。 本题考查知识点是二叉树性质。 任意一颗二叉树中,度为0的结点(叶子结点)总是比度为2的结点多一个。可以设度为0的结点数问n,则度为2的结点数为n-1,根据题意可得n+n-1+10=150,n不是整数,故不可能有这样的二叉树。 所以本题答案为C。 3、某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)______。 本题考查知识点是二叉树。 在任意一颗二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。叶子结点只有一个,即没有度为2的结点,这样度为1的结点就是11个。每一层有一个结点,故深度为12。 所以本题答案为A。 4、本题考查知识点是完全二叉树的性质。 完全二叉树的总结点为奇数时,叶子结点数是总结点加一再除以2。 所以本题答案为B。 深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为 ______。 5、设二叉树如下:

各类型二叉树例题说明

树的概念 树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树 1.树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。 2.树的深度——组成该树各结点的最大层次,如上图,其深度为4; 3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林; 4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。 5.树的表示 树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。如上图可写成如下形式: (A(B(E(K,L),F),C(G),D(H(M),I,J))) 5. 2 二叉树 1.二叉树的基本形态: 二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全二叉树——(e) 注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。 2.两个重要的概念: (1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树; (2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。 如下图: 完全二叉树 9

二叉树的性质总结

一、二叉树的性质 性质1、二叉树的第i 层上至多有2 i-1(i ≥1)个结点。用数学归纳法证明 推广:k 叉树(或度为k 的树)的第i 层上至多有k i-1(i ≥1)个结点 性质2、度为h 的二叉树中至多含有2h-1个结点。 21-1 + 2 2-1+……+ 2 h-1 = 2 h -1 推广:深度为h 的k 叉树(或度为k 的树)中至多含有 (k h -1)/(k-1)个结点 k 1-1 + k 2-1+……+ k h-1 =( k h -1)/(k-1) 性质3、若在任意一棵二叉树中,有n0个叶子结点, 有n2个度为2的结点,则:n0=n2+1 证明:设:有n0个叶子结点,有n1个度为1的结点,有n2个度为2的结点, 则二叉树中结点总数为:n=n0+n1+ n2 (1) 设分支的总数为m,则:m= n1+2 n2 (2) 因为n=m+1(3) 所以: n0+n1+ n2 = n1+2 n2 +1 整理得: n0= n2+1 推广: 度为k 的树有n 1个度为1的结点, n 2个度为2的结点,n k 个度为k 的结点则n 0为: 性质3推广的证明于性质3的证明 设:有n 0个叶子结点,有n 1个度为1的结点, n 2个度为2的结点,n k 个度为k 的结点 则结点总数为:n=n 0+n 1+ n 2 +……+n k (1) 设分支的总数为m,则:m= n 1+2 n 2+……+kn k 因为n=m+1(3) 所以:n 0+n 1+ n 2 +……+n k = n 1+2 n 2+……+kn k +1 整理得: n 0= 0n 1+1n 2+……+(k-1)n k +1 性质4、具有n 个结点的完全二叉树,其深度为?㏒2n ?+1 证明:设n 个结点的完全二叉树的深度为k ,根据性质2可知,k-1层满二叉树的结点总数为: 2k-1-1 k 层满二叉树的结点总数为: 2k -1 显然有: 2k-1 - 1 < n ≤ 2k - 1 [ 2k- 1 ≤ n < 2k 取对数有:k -1 ≤ log 2n < k 因为k 是整数,所以k -1 = ?log 2n ? , k= ?㏒2n ?+1 结论成立。 推广: 具有n 个结点的完全k 叉树,其深度为? log k (k-1) n ? +1 设n 个结点的完全k 叉树的深度为h ,根据性质2推广可知, h-1层满k 叉树的结点总数为:(k h-1-1)/(k-1) h 层满二叉树的结点总数为:(k h -1)/(k-1) 显然有: (k h-1-1)/(k-1) < n ≤ (k h -1)/(k-1) k h-1-1 <(k-1) n ≤ k h -1 k h-1 ≤ (k-1) n< k h 取对数有:h -1 ≤ log k (k-1) n 1,则该结点的双亲结点编号为 [k/2 ] 。 (2)若2k<=n,则编号为k 的左孩子结点编号为2k;否则该结点无左孩子结点(显然也没有右孩子结点)。 ∑ k i=1 ( i- 1)n i +1