大学MOOC 算法与数据结构(东莞理工学院)1450739177 最新慕课完整章节测试答案
第2章 线性表
【Test】单元测试 - 链式存储结构
1、单选题:
【2-1-1】在下列关于线性表的叙述中正确的是( )。
选项:
A: A.线性表的逻辑顺序与物理顺序总是一致的
B: B.线性表的顺序存储表示优于链式存储表示
C: C.线性表若采用链式存储表示时所有存储单元的地址可连续可不连续
D: D.除数组外,每种数据结构都应具备3种基本运算:插入、删除和查找
答案: 【 D.除数组外,每种数据结构都应具备3种基本运算:插入、删除和查找】
2、单选题:
【2-1-2】数据结构反映了数据元素之间的结构关系。单链表是一种( )。
选项:
A: A.顺序存储线性表
B: B.非顺序存储非线性表
C: C.顺序存储非线性表
D: D.非顺序存储线性表
答案: 【 D.非顺序存储线性表】
3、单选题:
【2-1-3】单链表又称为线性链表,在单链表上实施插入和删除操作( )。
选项:
A: A.不需移动结点,不需改变结点指针
B: B.不需移动结点,只需改变结点指针
C: C.只需移动结点,不需改变结点指针
D: D.既需移动结点,又需改变结点指针
答案: 【 B.不需移动结点,只需改变结点指针】
4、单选题:
【2-1-4】已知单链表中结点*q是结点*p的直接前趋,若在*q与*p之间插入结点*s,则应执行以下( )操作。
选项:
A: A.s->next=p->next;p->next=s;
B: B.q->next=s;s->next=p;
C: C.p->next=s->next;s->next=p;
D: D.p->next=s;s->next=q;
答案: 【 B.q->next=s;s->next=p;】
5、单选题:
【2-1-5】已知单链表中结点*p不是链表的尾结点,若在*p之后插入结点*s,则应执行以下( )操作。
选项:
A: A.s->next=p;p->next=s;
B: B.p->next=s;s->next=p;
C: C.s->next=p->next;p=s;
D: D.s->next=p->next;p->next=s;
答案: 【 D.s->next=p->next;p->next=s;】
6、单选题:
【2-1-6】已知L是带头结点的单链表,则摘除首结点的语句是( )。
选项:
A: A.L=L->next;
B: B. L->next=L->next->next;
C: C.L=L->next->next;
D: D.L->next=L;
答案: 【 B. L->next=L->next->next;】
7、单选题:
【2-1-7】已知单链表A长度为m,单链表B长度为n,若将B链接在A的末尾,在没有链尾指针的情形下,算法的时间复杂度应为( )。
选项:
A: A.O(1)
B: B.O(m)
C: C.O(n)
D: D.O(m+n)
答案: 【 B.O(m) 】
8、单选题:
【2-1-8】给定有n个元素的一维数组,建立一个有序单链表的时间复杂度是( )。
选项:
A: A.O(1)
B: B.O(n)
C: C.O(n^2)
D: D.O(nlog2n)
答案: 【 C.O(n^2)】
9、填空题:
【2-2】下面算法的功能是:统计带头结点的单链表中具有给定值x的所有元素个数。请在空白处填入正确的语句。(每空5分)int Count(LinkList &L, ElemType x)
{
int count = 0;
LinkList p = _______①______;
while(p != NULL) {
if(_____②______)
_____③____;
p = p->next;
}
_______④_______;
}
答案: 【 答案:
1、L->next
2、p->data == x
3、count++
4、return count】
10、填空题:
【2-3】下面算法的功能是:根据一维数组A[n]建立一个带头结点的单链表,使单链表中各元素的次序与A[n]中各元素的次序相同。请在空白处填入正确的语句。(每空5分)void CreateList(LinkList &L, ElemType A[], int n)
{
LinkList rear;
L = ________①___________;
