智慧树知到《算法与数据结构》章节测试答案


正确答案:连续或不连续都可以

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,则当前队列中的元素个数是()