所以时间复杂度T(n)=O(log3n)
第二章线性表
单项选择题
1.一个顺序表的第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 。
A.110 B.108 C.100 D.120
2.一个栈的入栈序列是a、b、c、d、e,则栈的不可能输出序列是 。
A.edcba B.decba C.dceab D.abcde
3.若一个栈的入栈序列是1、2、3、…、n,其输出序列为p1、p2、p3、…、pn,若p1=n,则pi为 。
A.i B.n=iC.n-i+1 D.不确定
4.栈结构通常采用的两种存储结构是 。
A.顺序存储结构和链表存储结构 B.散列方式和索引方式
C.链表存储结构和数组 D.线性存储结构和非线性存储结构
5.判断一个栈ST(最多元素为m)为空的条件是 。
A.ST->top!
=0 B.ST->top==NULLC.ST->top!
=mD.ST->top==m
6.判断一个栈ST(最多元素为m)为满栈的条件是 。
A.ST->top!
=0 B.ST->top==0C.ST->top!
=m-1D.ST->top==m
7.栈的特点是 1 ,队列的特点是 2 。
A.先进先出 B.先进后出
8.一个队列的入队序列是1、2、3、4,则队列输出序列是 。
A.4、3、2、1 B.1、2、3、4 C.1、4、3、2D.3、2、4、1
9.判断一个队列QU(最多元素为m)为空的条件是 。
A.QU->rear-QU->front==m B.QU->rear-QU->front-1==m
C.QU->front==QU->rearD.QU->front-QU->rear+1
10.判断一个队列QU(最多元素为m)为满队列的条件是 。
A.QU->rear-QU->front==m B.QU->rear-QU->front-1==m
C.QU->front==QU->rearD.QU->front-QU->rear+1
11.判断一个循环队列QU(最多元素为m)为空的条件是 。
A.QU->front==QU->rear B.QU->front!
=QU->rear
C.QU->front==(QU->rear+1)%mD.QU->front!
=(QU->rear+1)%m
12.判断一个循环队列QU(最多元素为m)为满队列的条件是 。
A.QU->front==QU->rear B.QU->front!
=QU->rear
C.QU->front==(QU->rear+1)%mD.QU->front!
=(QU->rear+1)%m
13循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是 。
A.(rear-front+m)%mB.rear-front+1 C.rear-front-1 D.rear-front
14.栈和队列的共同点是 。
A.都是先进后出 B.都是先进先出
C.只允许在端点处插入、删除元素D.没有共同点
填空题
1.线性表、栈和队列都是 结构,可以在线性表的 位置插入和删除元素;对于栈只能在 插入和删除元素;对于队列只能在 插入元素和 删除元素。
2.在一个长度为n的线性表的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动 个元素。
3.在一个长度为n的向量中的删除第i个元素(1≤i≤n)时,需要向前移动 个元素。
4.若栈顶指针指向栈顶的空位,向栈中压入元素的操作是 。
5.若栈顶指针指向栈顶元素,则对栈进行退栈时的操作是 。
6.在一个循环队列中,队首指针指向队首元素的 。
7.从循环队列中删除一个元素时,其队头指针 。
8.在具有n个单元的循环队列中,队满时共有 个元素的。
9.一个栈的输入序列是12345,则栈的输出序列43512是 。
(填写“可能”或“不可能”)
10.一个栈的输入序列是12345,则栈的输出序列12345是 。
(填写“可能”或“不可能”)
第二章线性表(参考答案)
选择题:
1. B。
2. C。
3. C。
4. A。
5. B。
6. D。
7. B,A。
8. B。
9. C。
10. A。
11. A。
12. C。
13. A。
14. C。
(2. C。
堆栈讲究先进后出,后进先出选项1是abcde先入栈,然后依次出栈,正好是edcba
选项2是abcd先依次入栈,然后d出栈,e再入栈,e出栈。
选项c是错误的,不可能a先出栈。
选项4是a入栈,然后a出栈;b再入栈,b出栈……依此类推。
所以选c。
)
(13. A。
因为rear有可能会转一圈到front的后面,所以需要加一下m)
填空题:
1. 线性,任何,栈顶,队尾,队首。
2. n-i+1。
3. n-i。
4. 先移动栈顶指针,后存入元素。
5. 先取出元素,后移动栈顶指针。
6. 前一个位置。
7. 要加1 8. n-1。
9. 不可能的。
10. 可能的。
第三章链表
单项选择题
1.不带头结点的单链表head为空的判定条件是 。
A.head==NULL B.head->next==NULL C.head->next==head D.head!
=NULL
2.带头结点的单链表head为空的判定条件是 。
A.head==NULL B.head->next==NULL C.head->next==head D.head!
=NULL
3.非空的循环单链表head的尾结点(由指针p所指向)满足 。
A.p->next==NULL B.p==NULL C.p->next==head D.p==head
4.在循环双链表的p所指结点之后插入s所指结点的操作是 。
A.p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B.p->right=s;p->right->left=s;s->left=p;s->right