第一章 单元测试

1、多选题:
关于线性表的基本概念与特性,下列哪些说法是正确的?
选项:
A:线性表中的每个元素都有且仅有一个直接前驱和一个直接后继,包括首元素和尾元素
B:线性表的抽象数据类型定义中,元素之间的关系是通过序偶对来表示的
C:线性表的位序在理论描述中通常从1开始,而在编程实现中则常从0开始
D:线性表的长度是指表中数据元素的个数,空表的长度为0
E:线性表中的数据元素必须是相同类型的,但可以是任意复杂的数据结构
答案: 【线性表的抽象数据类型定义中,元素之间的关系是通过序偶对来表示的;
线性表的位序在理论描述中通常从1开始,而在编程实现中则常从0开始;
线性表的长度是指表中数据元素的个数,空表的长度为0;
线性表中的数据元素必须是相同类型的,但可以是任意复杂的数据结构
】

2、单选题:
下列关于线性表的描述中,哪一项是正确的?
选项:
A:线性表中的元素必须按数值大小排列
B:线性表中的每个元素都有且仅有一个直接前驱和一个直接后继
C:线性表的长度可以是无限的
D:线性表中的元素可以有不同的数据类型
答案: 【线性表中的每个元素都有且仅有一个直接前驱和一个直接后继】

3、单选题:
在一个长度为n的线性表中插入一个元素,在最坏情况下需要移动多少个元素?
选项:
A:

B:

C:

D:

答案: 【

】

4、判断题:
线性表是由相同特性的数据元素构成的有限序列,其中每个元素都有唯一的位序。
选项:
A:错
B:对
答案: 【对】

5、判断题:
在链式存储结构的线性表中插入新元素时,不需要移动插入位置后的所有元素,只需调整指针即可。
选项:
A:错
B:对
答案: 【对】

6、判断题:
在顺序存储结构的线性表中进行删除操作的时间复杂度总是,因为需要移动所有后续元素填补空缺位置。
选项:
A:对
B:错
答案: 【错】

第二章 单元测试

1、单选题:
下列关于线性表定义的描述中,哪一项是正确的?
选项:
A:线性表中每个元素都有唯一的位序号
B:线性表的索引默认从1开始编程实现
C:线性表可以包含不同类型的数据元素
D:线性表的数据元素数量可以是无限的
答案: 【线性表中每个元素都有唯一的位序号】

2、单选题:
下列关于顺序表动态扩容的实现策略,哪一项是最优的?
选项:
A:仅在使用率低于50%时缩容为原大小的一半以节省空间
B:预先分配远超过实际需求的固定大容量以避免任何扩容操作
C:每次插入新元素时,将容量增加1个单元以确保空间足够
D:当空间不足时,将容量扩增为当前大小的2倍以减少扩容次数
答案: 【当空间不足时,将容量扩增为当前大小的2倍以减少扩容次数】

3、判断题:
线性表的顺序存储结构中,逻辑上相邻的两个数据元素在物理存储空间上也必须相邻。
选项:
A:对
B:错
答案: 【对】

4、判断题:
动态扩容操作的时间复杂度为,因为只需修改数组引用即可完成扩容。
选项:
A:错
B:对
答案: 【错】

5、多选题:
关于顺序表SqList的操作实现,下列哪些说法是正确的?
选项:
A:search(e)函数在查找失败时会返回顺序表的当前长度值cursize
B:insertAt(i, e)操作需要同时检查插入位置有效性和表容量
C:

get(i)函数可以直接通过索引访问元素,时间复杂度为

D:remove(i)操作需要移动后续所有元素以填补被删除元素的空缺位置
E:insertAt(i, e)操作在插入位置无效时会抛出异常,但不会检查顺序表容量是否已满
答案: 【insertAt(i, e)操作需要同时检查插入位置有效性和表容量;

get(i)函数可以直接通过索引访问元素,时间复杂度为

;
remove(i)操作需要移动后续所有元素以填补被删除元素的空缺位置】

6、判断题:
在带头结点的单链表中,使用头插法插入新节点时,若插入位置为0,则需要修改头结点的指针域以指向新节点,而无需调整其他节点的指针关系。
选项:
A:对
B:错
答案: 【错】

本门课程剩余章节答案为付费内容

支付后可长期查看

有疑问请添加客服QQ:2025479448反馈

购买期末请+QQ:2025479448

如遇卡顿看不了请换个浏览器即可打开

请看清楚了再购买哦,电子资源购买后不支持退款哦