大学MOOC 数据结构与算法(枣庄学院)1450801260 最新慕课完整章节测试答案
第二章线性表
在线练习2
1、单选题:
下述哪一条是顺序存储结构的优点( )。
选项:
A: 存储密度大
B: 插入运算方便
C: 删除运算方便
D: 可方便地用于各种逻辑结构的存储表示
答案: 【 存储密度大 】
2、单选题:
下面关于线性表叙述中错误的是( )。
选项:
A: 线性表采用顺序存储,必须占用一片连续的存储单元。
B: 线性表采用顺序存储,便于进行插入和删除操作。
C: 线性表采用链式存储,不必占用一片连续的存储单元。
D: 线性表采用链式存储,便于插入和删除操作。
答案: 【 线性表采用顺序存储,便于进行插入和删除操作。】
3、单选题:
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。
选项:
A: 顺序表
B: 双链表
C: 带头结点的双循环链表
D: 单循环链表
答案: 【 顺序表 】
4、单选题:
设某顺序表中第一个元素的地址是Base,下限值为1,每个结点占m个单元,则第i个结点的地址为( )。
选项:
A: Base+(i+1)×m
B: Base+i×m
C: Base+(i-1)×m
D: Base-i×m
答案: 【 Base+(i-1)×m】
5、单选题:
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
选项:
A: 单链表
B: 仅有头指针的单循环链表
C: 双链表
D: 仅有尾指针的单循环链表
答案: 【 仅有尾指针的单循环链表 】
6、单选题:
设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
选项:
A: 单链表
B: 带尾指针的单循环链表
C: 单循环链表
D: 带头结点的双循环链表
答案: 【 带头结点的双循环链表 】
7、单选题:
链表不具有的特点是( )。
选项:
A: 插入、删除不需要移动元素
B: 可随机访问任意元素
C: 不必事先估计存储空间
D: 所需空间与线性长度成正比
答案: 【 可随机访问任意元素 】
8、单选题:
线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续或不连续都可以
答案: 【 连续或不连续都可以】
9、单选题:
静态链表中指针表示的是( )。
选项:
A: 内存地址
B: 数组下标
C: 下一元素在数组中的下标
D: 左、右孩子地址
答案: 【 下一元素在数组中的下标】
10、单选题:
若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为 ()。
选项:
A: O(0)
B: O(1)
C: O(n)
D: O(
)
答案: 【 O(n) 】
11、单选题:
对于顺序表,访问结点和删除结点的时间复杂度分别为( )。
选项:
A: O(n) O(n)
B: O(n) O(1)
C: O(1) O(n)
D: O(1) O(1)
答案: 【 O(1) O(n) 】
12、单选题:
在单链表指针为p的结点之后插入指针为s的结点,正确的操作是( )。
选项:
A: p->next=s;s->next=p->next;
B: s->next=p->next;p->next=s;
C: p->next=s;p->next=s->next;
D: p->next=s->next;p->next=s;
答案: 【 s->next=p->next;p->next=s;】
13、单选题:
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
选项:
A: head==NULL
B: head→next==head
C: head→next==NULL
D: head!=NULL
答案: 【 head→next==NULL 】
14、单选题:
将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数是( )。
选项:
A: n
B: 2n-1
C: 2n
D: n-1
答案: 【 n 】
15、单选题:
在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是( )。注:双向链表的结点结构为(prior,data,next)。
选项:
A: p->prior=q;q->next=p;p->prior->next=q;q->prior=q;
B: p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;
C: q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;
D: q->prior=p->prior;q->next=q;p->prior=q;p->prior=q;
答案: 【 q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;】
16、单选题:
线性表( a1,a2,…,an)以链式方式存储时,访问第i个元素的时间复杂度为( )
选项:
A: O(i)
B: O(1)
C: O(n)
D: O(i-1)
答案: 【 O(n)】
17、单选题:
头指针为H的循环单链表中尾结点P的特点是( )。
选项:
A: P->next=H
B: P->next= H->next
C: P=H
D: P=H->next
答案: 【 P->next=H 】
18、单选题:
两个指针P和Q,分别指向单链表的两个结点,P是Q的前驱结点的条件是( )。
选项:
A: P->next==Q->next
B: P->next==Q
C: Q->next==P
D: P==Q
答案: 【 P->next==Q】
19、单选题:
在单链表中,增加头结点的目的是( )。
选项:
A: 使单链表至少有一个结点
B: 标志表中首结点的位置
C: 链表判空、插入第一个结点以及删除第一个结点等运算方便
D: 说明该单链表是线性表的链式存储结构
答案: 【 链表判空、插入第一个结点以及删除第一个结点等运算方便】
20、单选题:
下面关于线性表的叙述中,错误的是( )。
选项:
A: 顺序表必须占一片地址连续的存储单元
B: 顺序表可以随机存取任一元素
C: 链表不必占用一片地址连续的存储单元
D: 链表可以随机存取任一元素
答案: 【 链表可以随机存取任一元素】
21、单选题:
设p为指向长度为n的单循环链表上某结点的指针,则找到p的直接前驱( )。
选项:
A: 找不到
B: 时间复杂度为O(1)
C: 时间复杂度为O(n)
D: 次数约为n
答案: 【 时间复杂度为O(n)】
22、单选题:
以下关于线性表的论述,不正确的是( )。
选项:
A: 线性表中的元素可以是数字、字符、记录等不同类型。
B: 顺序表中包含的元素个数是有限的。
C: 线性表中的每个结点都有且仅有一个直接前趋和一个直接后继。
D: 存在这样的线性表,即表中没有任何结点。
答案: 【 线性表中的每个结点都有且仅有一个直接前趋和一个直接后继。】
23、单选题:
在( )的运算中,使用顺序表比链表好。
选项:
A: 插入
B: 根据序号查找
C: 删除
D: 根据元素查找
答案: 【 根据序号查找 】
24、判断题:
静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
选项:
A: 正确
B: 错误
答案: 【 正确】
25、判断题:
线性表的特点是每个元素都有一个前驱和一个后继。
选项:
A: 正确
B: 错误
答案: 【 错误】
26、判断题:
若长度为n的线性表采用顺序存储结构,找到其中第i个元素的时间复杂度为O(n)。
选项:
A: 正确
B: 错误
答案: 【 错误】
27、判断题:
已知带头结点的双向循环链表L,判断其为空表的条件是L->next==L && L->prior==L。
选项:
A: 正确
B: 错误
答案: 【 正确】
28、判断题:
顺序表的插入、删除运算更方便。
选项:
A: 正确
B: 错误
答案: 【 错误】
29、判断题:
链表的性能优于顺序表。
选项:
A: 正确
B: 错误
答案: 【 错误】
30、判断题:
顺序表适宜于顺序存取,而链表适宜于随机存取。
选项:
A: 正确
B: 错误
答案: 【 错误】
31、判断题:
顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
选项:
A: 正确
B: 错误
答案: 【 错误】
32、判断题:
插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。
选项:
A: 正确
B: 错误
答案: 【 错误】
33、判断题:
线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻。
选项:
A: 正确
B: 错误
答案: 【 正确】
第四章串
在线练习4
1、单选题:
下面关于串的叙述不正确的是( )。
选项:
A: 串是字符的有限序列
B: 模式匹配是串的一种重要运算
