共有n层,每层有一个节点
共有log2n层,相邻两层的节点数正好相差一倍
先序遍历序列与中序遍历序列相同
后序遍历序列与中序遍历序列相同
第1题:
● 某二叉树为单枝树(即非叶子结点只有一个孩子结点)且具有n个结点(n>1),则该二叉树 (40) 。
(40)
A. 共有n层,每层有一个结点
B. 共有log2n层,相邻两层的结点数正好相差一倍
C. 先序遍历序列与中序遍历序列相同
D. 后序遍历序列与中序遍历序列相同
第2题:
某二叉树中度为2的节点有n个,则该二叉树中有______个叶子节点。
第3题:
若二叉树的前序遍历序列与中序遍历序列相同且树中节点数大于1,则该二叉树的______。
A.只有根节点无左予树
B.只有根节点无右子树
C.非叶子节点只有左子树
D.非叶子节点只有右子树
A.
B.
C.
D.
第4题:
A.不存在这样的二叉树
B.351
C.1
D.350
正确答案:A
第5题:
一棵二叉树中共有70个叶子节点与80个度为1的节点,则该二叉树的总节点数为______。
A.219
B. 221
C. 229
D. 231
第6题:
某二叉树中有n个度为2的节点,则该二叉树中的叶子节点为( )。
A.n+1
B.n-1
C.2n
D.n/2
第7题:
某二叉树为单枝树(即非叶子节点只有一个孩子节点)且具有n个节点(n>1),则该二叉树______。
A.共有n层,每层有一个节点
B.共有log2n层,相邻两层的节点数正好相差一倍
C.先序遍历序列与中序遍历序列相同
D.后序遍历序列与中序遍历序列相同
A.
B.
C.
D.
第8题:

第9题:
在任意二叉树中,如有N个叶子结点,M个度为()的节点,则必有()。
第10题:
满二叉树的叶节点为N,则它的节点总数为()
第11题:
N
2N
2N-1
2N+1
2^N-1
第12题:
共有n层,每层有一个节点
共有log2n层,相邻两层的节点数正好相差一倍
先序遍历序列与中序遍历序列相同
后序遍历序列与中序遍历序列相同
第13题:
设根节点的层次为0,则具有n个节点的完全二叉树的深度为【 】。
第14题:
阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的内容补充完整。
【说明】
对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图6-15所示的最优二叉树,以及相应的结构数组Ht(如表6-14所示,其中数组元素Ht[0]不用)。

结构数组Ht的类型定义如下:
define MAXLEAFNUM 20
struct node{
char ch; /*扫当前节点表示的字符,对于非叶子节点,此域不用*/
Int weight; /*当前节点的权值*/
int parent; /*当前节点的父节点的下标,为0时表示无父节点*/
int lchild, rchild;
/*当前节点的左、右孩子节点的下标,为0时表示无对应的孩子节点*/
)Ht[2*MAXLEAFNUM];
用“0”或“广标识最优二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图6-15所示。
若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图6-15所示的叶子节点a、b、c、d的前缀编码分别是110、0、111、10。

函数void LeafCode(int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子节点,为所有的叶子节点构造前缀编码。其中,形参root为最优二叉树的根节点下标;形参n为叶子节点个数。在函数void LeafCode(int root,int n)构造过程中,将Ht[p].weight域用做被遍历节点的遍历状态标志。
函数void Decode(char *buff,int root)的功能是:将前缀编码序列翻译成叶子节点的字符序列,并输出。其中,形参root为最优二叉树的根节点下标;形参buff指向前缀编码序列。
【函数4.1】
char **HC;
void LeafCode(int root, int n)
{ /*为最优二叉树中的n个叶子节点构造前缀编码,root是树的根节点下标*/
int I,p=root,cdlen=0;
char code[20];
Hc = (char **)malloc((n+1)*sizeof(char *)); /*申请字符指针数组*/
For(i = 1;i<= p;++I)
Ht [i]. weight = 0; /*遍历最优二叉树时用做被遍历节点的状态标志* /
While (p) { /*以非递归方法遍历最优二叉树,求树中每个叶子节点的编码*/
If(Ht[p].weight == 0) { /*向左*/
Ht[p].weight = 1;
If(Ht[p].lchild != 0) {
p = Ht[p].lchild;
code[cdlen++] = '0';
}
else if(Ht[p].rchild == 0) { /*若是叶子节点,则保存其前缀编码*/
Hc[p] = (char *)malloc((cdlen+1)*sizeof(char));
(1);
strcpy (Hc [p],code);
}
}
else if(Ht[p].weight == 1) { /*向右*/
Ht [p].weight = 2;
If(Ht[p].rchild != 0) {
p = Ht [p].rchild;
code[cdlen++] ='1';
}
}
else { /*Ht[p].weight == 2,回退/
Ht [p].weight = 0;
p =(2);
(3); /*退回父节点*/
}
} / *while .结束* /
}
【函数4.2】
void Decode(char *buff,int root)
{ int pre = root,p;
while(*buff != '\0') {
p = root;
&


第15题:
设一棵完全二叉树共有700个节点,则在该二叉树中有______个叶子节点。
第16题:
某二叉树有5个度为2的节点,则该二叉树中的叶子节点数是
A.10
B.8
C.6
D.4
第17题:
一棵二叉树中共有70个叶子节点与与80个度为1的节点,则该二叉树中的总节点数为。 A.219 B.221 C.229 D.231
第18题:
具有n个节点的完全二叉树的深度为______。
第19题:

第20题:
第21题:
一个包含n个分支节点(非叶节点)的非空二叉树,它的叶节点数目最多为()
第22题:
n个节点的完全二叉树,编号为i的节点是叶子结点的条件是()
第23题:
2n+1
2n-1
n-1
n+1
第24题: