D.将n个结点从小到大排序
(12)在线性表中()只有一个直接前驱和一个直接后继。
A.首元素B.中间元素C.尾元素D
(13)对具有n个结点的线性表进行查找运算,所需的算法时间复杂度为(
A.0(n)B.0(nlog2n)C.O(log2n)D.O(n)
(14)
线性表采用顺序存储的缺点是()。
A.存储密度降低B
则以下可以
A.n-iB.iC.n-i+1D.n-i-l
(25)假定己建立以下动态链表结构,且指针Pl和P2已指向如图所示的结点:
将P2所指结点从链表中删除并释放该结点的语句组是()
nunmt
A.pl->next=p2->next;free(pl);B.pl=p2;free(p2);
C.pl->next=p2->next;free(p2);D.pl=p2->next;free(p2);
(26)若已建立如图所示的单向链表:
infolink
则以下不能将S所指的结点插入到链表尾部,构成新的单向链表的语句组是(
A.s一〉next=a->next一〉next;a->next->next=s;
B.a=a->next;a一〉next=s;s一〉next=NULL;
C.s一〉next=NULL;a=a一〉next;a一〉next=s;
D.
>next;
a=a一〉next;s一〉next=a一〉next;a->next=s
(27)有如下函数:
Voidfun(structnode*hl,structnode*h2){structnode*t;
t=hl;
='\0')
while(t->next!
t=t一〉next;t->next=h2;}
其中形参hl和h2分别指向2个不同链表的第一个结点,此函数的功能是()。
A.将链表h2接到链表hl后B•将链表hl接到链表h2后
C.找到链表hl的最后一个结点由指针返回D.将链表hl拆分成两个链表
第三章栈
一、判断题
(l)栈是运算受限制的线性表。
(2)在栈空的情况下,不能作出栈操作,否则产生溢出。
(3)栈一定是顺序存储的线性结构。
(4)空栈就是所有元素都为0的栈。
(5)不管堆栈采用何种存储结构,只要不为空,就可以任意的删除数据元素。
⑹在c语言中设顺序栈的长度为MAXLEN,则top=MAXLEN时表示栈满。
(7)一个栈的输入序列为:
A,B,C,D,可以得到输出序列:
C,A,B,D。
二、选择题
(8)当栈中当前元素为n个,此时进行进栈运算时发生上溢,则该栈的最大容量为(
)。
D.D
.循环链表
•不能固定
)。
B.B
C,C
D.D
.变量
•动态变
第四章队列
(6)在队列的顺序存储结构中,会产生队列中有剩余空间,但确不能执行入队操作的“假溢出”现象,在以下几种方法中,不能解决假溢出问题的是(
A.采用首尾相接的循环队列头移动
C.当有元素出队时,将己有元素向队头移动D
(7)设队列空间n=40:
队尾指针rear=6;队头指针元素的数目是(
)。
A.19B.21
(8)设循环队列的队首指针用
()
A.front==rearB
(9)设循环队列存储于数组元素示,则判断队满的条件是(
A.(rear一1)%n=
C.(rear+1)%n==front
C.11D.29front表示,队尾指针用
.当有元素入队时,将己有元素向队
.申请新的存储单元存放入队元素front=25,则此循环队列中当前
rear表示,则判断队空的条件是
.front+1==rearC.rear+1=frontD.rear==0
a[1]—a[n]中,其队头和队尾指针分别用front和rear表)。
=frontB.(front+1)%n==rearD.(front
l)%n==rear
(10)循环队列的特点之一是不会产生(
A.上溢出B.下溢出
(11)设用数组data[m+l]作为循环队列q尾指针,则执行出队操作应执行的语句是(
A.front=front+1;B.
)。
C.队满的存储空间,front)。
D
为队头指针,
.假溢出
rear为队
front=(
front+l)
C.rear=(rear+l)%m;D.front=(front+l)%m;
(12)在队列中存取数据应遵循的原则是()
A.先进先出设长度为
A.O(l)设长度为
A.O(l)
(13)
(14)
(15)
B.后进先出的链队列用单循环链表表示,B.O(log2n)
的链队列用单循环链表示,B.O(log2n)
)进行操作的线性表。
B.队头
队列是限定在(
A.中间
(16)一个循环队列一旦说明,其占用空间的大小
A.已固定B.可以变动
C
若只设头指针,C.O(n)若只设尾指针,
C.O(n)
.先进后出则入队操作的时间复杂度为D.O(n则出队操作的时间复杂度为
D.O(n
D.
随意进出
()。
2)
(
2)
)。
.队尾)。
.不能固定(17)在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。
.端点
.动态变化
A.前一个B•后一个C•后面
(18)当利用大小为n的数组顺序存储一个队列时,该队列的最后一个元素的下标为(
A.n-2B.n-1C.nD.n+1
(19)从一个顺序循环队列中删除一个元素时,首先需要做的操作是(
A.队头指针减1
C.队头指针加1
(20)若4个元素按A,B,C,D
A.AB.B
)。
B.取出队头指针所指的元素
D.取出队尾指针所指的元素
,顺序进队Q,队头元素是()。
C.CD.D
第五章串
.当前
)。
一、判断题
(1)串中任意个字符组成的子序列称为该串的子串。
(2)设S串的长度为n,子串的长度为m,那么子串定位算法的平均时间复杂度在最好情
况下是
0(n+m)。
(3)在顺序存储结构中,串的插入算法是非常方便的。
⑷设有两个串si和S2,其中s2是si的子串,把s2在si中首次出现的位置找出来的算法叫作求子串的算法。
(5)空串是任意串的子串。
(6)串的长度是指串中不同字符的个数。
(7)串是n个字母的有限序列。
(8)空串不等于空白串。
(9)如果两个串含有相同的字符,则说明它们相等。
(10)如果一个串中所有的字符均在另一个串中出现,则说明前者是后者的子串。
、选择题
⑵假设有两个字符串S1和S2,其中SI="ABCDXYZ",S2="REST",那么如果进行了下面的运算concatstr(substr(S1,3,2),Substr(S1,Strlen(S2),3)),其
结果应是()。
A."CDXYZ"B."CDDXY"C."CDREST"D."CDRES"
(3)设有一个字符串S="ABC123XYZ",问该串的长度为()。
A.9B.10C.11D.12
(4)设有一个字符串S="windows",其子串的数目是()。
A.25个B.26个C.27个D.28个
(5)
串是一种特殊的线性表,其特殊性表现在()。
A.串中允许有空串B.串可以顺序存储C.串可以链式存储D.数据兀素是
第六章树和二叉树
一、判断题
(1)树结构中每个结点最多只有一个直接前驱。
(2)二叉树中每个结点的度最大为2,因此二叉树是一种特殊的树。
(3)由树转化为二叉树,其根结点的右子树总是空的。
(4)若有一个结点是某二叉树的前序遍历序列中的第一个结点,则它也一定是这棵二叉树的中序遍历序列中的第一个结点。
(5)若一个树叶是某二叉树的前序遍历序列中的最后一个结点,则它也一定是这棵二叉树的中序遍历序列中的最后一个结点。
(6)若一个树叶是某二叉树的中序遍历序列中的最后一个结点,则它也一定是这棵二叉树的前序遍历序列中的最后一个结点。
(7)若有一个结点是某二叉树的前序遍历序列中的第一个结点,则它也一定是这棵二叉树的后序遍历序列中的最后一个结点。
(8)在二叉树中,具有一个子女的父结点,在中序遍历序列中没有后继结点。
而具有两个子女的父结点,在中序遍历序列中,它的后继结点最多只能有一个子女结点。
(9)虽然已知二叉树的前序遍历和中序遍历序列,但还不能惟一确定出这棵二叉树,因为并不知道二叉树的根结点是哪一个。
(10)中序线索二叉树的优点之一是便于在中序下查找前驱结点和后继结点。
(11)二叉树中一旦插入了结点,则该二叉树就不再是二叉树。
(12)用一维数组存储二叉树时,总是以前序遍历存储结点。
(13)在满二叉树中,存在度为1的结点。
(14)在任意一棵二叉树中,终端结点的个数等于度为2的结点个数加1
(15)哈夫曼树是带权值的树,且权值较大的结点离根较近。
(16)前序遍历序列与中序遍历序列完全相同的二叉树有:
空二叉树或任一结点均无左子树的非空二叉树。
(17)中序遍历序列与后序遍历序列完全相同的二叉树有:
空二叉树或任一结点均无右子树的非空二叉树。
(18)前序遍历序列与后序遍历序列完全相同的二叉树只有空二叉树。
(19)完全二叉树一定是满二叉树。
(20)在中序线索二叉树中,右线索若不为空,则一定指向其双亲。
(21)在前序遍历二叉树的序列中,任何结点的子树的所有结点都是直接跟在该结点之后。
(22)二叉树按某种顺序线索后,任一结点均有指向其前驱和后继的线索。
(23)二叉树的前序遍历中,任意一个结点均处于其子树结点的前面。
二、选择题
⑷某二叉树的先序遍历序列为:
IJKLMNO,中序遍历序列为:
JLKINMQ则后序遍历序列为()。
A.JLKMNOIB.LKNJOMIC.LKJNOMID.LKNOJMI
⑸某二叉树的后序遍历序列为:
DABEC,中序遍历序列为:
DEBAC则先序遍历序列为()。
A.ACBEDB.DECABC.DEABCD.CEDBA
(6)具有35个结点的完全二叉树的深度为()。
A.5B.6C.7D.8
(7)二叉树按某种顺序线索化后,任一结点均有指向其前驱和后继的线索,这种说法()
A.正确B.错误C.不确定D.都有可能
(8)根据树的定义,具有3个结点的树有()种树型。
A.2B.3C.4D.5
(9)下列4棵树,()不是完全二叉树。
A,
B.
C.
D.
B
(11)
A.有序数据元素
C.元素之间无联系的数据对于一棵满二叉树,m个树叶,
A.n=h+mB.h+m=2n
(12)
D
个结点,
C.m=h-1一棵n个结点的二叉树,其空指针域的个数为(
A.nB.n+lC.n-1D
.无序数据元素
.元素之间有分支层次的关系深度为h,则()。
D.n=2
)。
h-l
(13)
任何一棵二叉树的叶子结点在前序、中序、后序遍历序列中的相对次序(A.不发生改变B.发生改变C.不能确定D.
A在B前的条件疋在B的左方D.A
(14)A,B为一棵二叉树上的两个叶子结点,在中序遍历时,
A.A在B的右方
B.A是B的祖先
C.A
不确定
)。
以上都不对
)。
是B的子
孙
(15)
(16)
|线索二叉树是一种(
A.物理B
I如果结点A是结点
A.2B.3
|设有一棵二叉树,其1)。
(17)
(
A.m+nn+I
)结构。
•逻辑
的双亲,而且结点
C.4
度结点有m个,
B.2*m+n
C.m+2*n
(18)设有一棵二叉树,其先序遍历序列是:
二叉树的后序遍历序列是()。
C
B
D.5
2度结点有n个,则该二叉树的结点总数为
.逻辑和存储D.线性
个兄弟,则结点A的度是(
D.m+2*
ABCDEFG,中序遍历序列是:
CBDAFEG则该
A.CDBFGEAB.CDFGBEAC.
(19)设有一棵树的度为4,其中度为1、2、3
1,则这棵树中叶子结点的个数为()。
A.5B.6C.7D.8
CDBAFGED.
4的结点个数分别为4
CDBFEGA
(20)用顺序存储结构将完全二叉树的结点逐层存放在数组
放,若结点B[i]有子女,则其左孩子结点应是(
B[n]中,其根结点从B[1]开始存)。
A.B[2i一I]B.B[2i+I]C.B[2i]D.B[i/
2]
(21)设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为a,b和c,对应
的二叉树根结点的右子树上的结点个数是()。
A.aB.a+bC.c
D.b+c
(22)设有13个值,由它们组成一棵哈夫曼树,则该哈夫曼树中结点个数共有()。
(23)设电文中出现的字母为A、B、C、D和E,每个字母在电文中出现的次数分别为:
6,23,3,5和12,按哈夫曼编码,则字母C的编码应是()。
A.10
B.110
C.1110
D.1111
在先根序列中的序号为Pre(x),在后根序列中的序号为
x是结点y的祖先,则下列4个条件中正确的是(
。
且post(x)。
且post(x)>post(y)
。
且post(x)。
且post(x)>Post(y)
(25)有关二叉树的下列说法正确的是(
.二叉树中任何一个结点的度都为2
.任何一棵二叉树中至少有一个结点
A.二叉树的度为2B
的度为2
(26)已知一棵二叉树的先序遍历序列为根的右子树的根是()。
A.EB.FC.G
C.一棵二叉树的度可以小于2D
EFHIGJK,中序遍历序列为HFIEJGK,则该二叉树
D.J
(27)在完全二叉树中,如果一个结点是叶子结点,则它没有()。
A.左孩子结点B.右孩子结点C.左、右孩子结点D.左、右孩子结
点和兄弟结点
(28)在一棵非空的二叉树的中序遍历序列中,其根结点的右边()。
.只有左子树上的所有结点
.只有左子树上的部分结点
)°
C.孩子兄弟链表表示D.顺序存储
A.只有右子树上的所有结点B
C.只有右子树上的部分结点D
(29)在下列存储形式中,不是树的存储形式的是(
A.双亲表示法B.孩子链表表示法
所有叶子结点的先后顺序是().先序和中序相同,