智慧树知到《算法与数据结构》章节测试答案
正确答案:连续或不连续都可以
4、若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。
A.顺序表
B.单链表
C.双链表
D.循环单链表
正确答案:顺序表
5、在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动()个元素
A.n-i
B.n-i+1
C.n-i-1
D.i
正确答案:n-i+1
6、线性表的顺序存储结构是一种()存储结构。
A.随机存取
B.顺序存取
C.索引存取
D.散列存取
正确答案:随机存取
7、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。
A.p->next=q;q->prior=p;p->next->prior=q;q->next=q
B.p->next=q;p->next->prior=q;q->prior=p;q->next=p->next
C.q->prior=p;q->next=p->next;p->next->prior=q;p->next=q
D.q->next=p->next;q->prior=p;p->next=q;p->next=q
正确答案:q->prior=p;q->next=p->next;p->next->prior=q;p->next=q
8、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是()。(答案中的i均为合法输入)
A.访问第i个元素的前驱
B.在第i个元素之后插入一个新元素
C.删除第i个元素
D.对顺序表中元素进行排序
正确答案:访问第i个元素的前驱
9、已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A.s->next=p;q->next=s->next
B.p->next=s->next;s->next=q
C.s->next=q;p->next=s->next
D.q->next=s->next;s->next=p
正确答案:q->next=s->next;s->next=p
10、在表长为n的顺序表中,当在任何位置删除一个元素的概率相同时,删除一个元素所需移动的平均个数为()。
A.(n-1)/2
B.(n+1)/2
C.n/2
D.n
正确答案:(n-1)/2
第三章单元测试
1、栈和队列的共同点是()
A.都是先进后出
B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
正确答案:只允许在端点处插入和删除元素
2、一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是()
A.edcba
B.decba
C.dceab
D.abcde
正确答案:dceab
3、设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。
A.顺序表
B.链表
C.队列
D.栈
正确答案:栈
4、若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0,3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。
A.1和5
B.2和4
C.4和2
D.5和1
正确答案:2和4
5、循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()