在一非空二叉树的中序遍历中,根结点的右边()
A.只有右子树上的所有结点
B.只有右子树上的部分结点
C.只有左子树上的部分结点
D.只有左子树上的全部结点
A、只有右子树上的所有结点
A.只有右子树上的所有结点
B.只有右子树上的部分结点
C.只有左子树上的部分结点
D.只有左子树上的全部结点
A、只有右子树上的所有结点
在非空二叉树的中序遍历序列中,二叉树的根结点的左边(40)。
A.只有左子树上的所有结点
B.只有左子树上的部分结点
C.只有右子树上的所有结点
D.只有右子树上的部分结点
在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该 _______。
A.只有左子树上的所有结点
B.只有左子树上的部分结点
C.只有右子树上的所有结点
D.只有右子树上的部分结点
A.二叉树的遍历是指不重复地访问二叉树中的所有结点
B.二叉树的遍历允许重复地访问二叉树中的个别结点
C.在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树
D.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历
一个具有m个结点的二叉树,其二叉链表结点(左、右孩子指针分别用left和right表示)中的空指针总数必定为(57)个。为形成中序(先序、后序)线索二叉树,现对该二叉链表所有结点进行如下操作:若结点p的左孩子指针为空,则将该左指针改为指向p在中序(先序、后序)遍历序列的前驱结点;若p的右孩子指针为空,则将该右指针改为指向p在中序(先序、后序)遍历序列的后继结点。假设指针s指向中序(先序、后序)线索二叉树中的某结点,则(58)。
A.m+2
B.m+1
C.m
D.m-1
A.一般二叉树
B.只有根结点的二叉树
C.根结点无左孩子的二叉树
D.根结点无右孩子的二叉树
E.所有结点只有左子数的二叉树
A.先序
B.中序
C.后序
D.层序
对一棵二叉树的中序遍历序列中,根结点的左边包括()。
A.左子树上的叶子结点
B.右子树上的所有结点
C.左子树上的所有结点
D.右子树上的叶子结点
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
求树的宽度,所谓宽度是指在二叉树的各层上,具有结点数最多的那一层的结点总数。本算法是按层次遍历二叉树,采用一个队列q,让根结点入队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。
[函数]
int Width (BinTree *T
{
int front=-1, rear=-1; /*队列初始化*/
int flag=0, count=0, p; /*p用于指向树中层的最右边的结点, flag 记录层中结点数的最大值*/
if (T!=Null)
{
rear++;
(1);
flag=1;
p=rear;
}
while ((2))
{
front++;
T=q [front]];
if (T->lchild!=Null )
{
roar+-+;
(3);
count++;
}
if (T->rchild!=Null )
{
rear++; q[rear]=T->rchild;
(4);
}
if (front==p ) // 当前层已遍历完毕
{
if((5))
flag=count;
count=0;
p=rear, //p 指向下一层最右边的结点
}
}
return (flag );
}
A.不存在这样一颗二叉树,对其分别进行前序、后序和中序遍历,最终能够得到相同的结果
B.若非空二叉树中所有结点均没有左子树,那么分别对它进行前序遍历和中序遍历,最终可以得到相同的结果
C.若非空二叉树中所有结点均没有右子树,那么对它分别进行后序遍历和中序遍历,最终可以得到相同的结果
D.存在这样一颗二叉树,对其分别进行前序和后序遍历,最终能够得到相同的结果
(59)
A. 先序
B. 中序
C. 后序
D. 层序
(61)
A. 先序
B. 中序
C. 后序
D. 层序
(62)
A. O(n2
B. O(nlog2n)
C. O(log2n)
D. O(n)