跳到正文

2.1 线性表的定义和基本操作·选择题讲评

40 分钟

2.1 选择题讲评:用定义逐项反证

本课训练的不是背结论,而是把选项拆成“有限、同类型、有次序、前驱后继、操作条件”五类约束。做题时先问它谈的是逻辑结构、实现方式还是接口行为,再判断。

例 1(单选):下列一定属于线性表特征的是:A 地址连续;B 元素按值递增;C 除首尾外各元素有唯一直接前驱和后继;D 至少含一个元素。答案 C。A 只属于某些顺序实现;B 是有序表的附加性质;D 忽略空表。

例 2(多选):长度为 的线性表中,哪些表述正确?A 时无表头;B 第 个元素的数组下标必为 ;C 插入位序可为 ;D 删除位序可为 。答案 A、C。B 混淆逻辑位序和具体实现,D 会删除不存在的元素。

例 3:若只给出接口 LocateElem(L,e),能否断定时间复杂度为 ?不能。无序顺序表或链表通常线性查找;若实现附带索引或保持适合二分的有序顺序存储,成本可能不同。抽象接口定义“做什么”,具体表示与前置条件决定“多快”。

稳定流程:先圈限定词“任意、一定、仅、最多”;再用最小反例检验。看到“线性表必须连续存储”,拿单链表反证;看到“第一个元素无前驱”,要确认说的是直接前驱而不是值域上的大小关系;看到插入删除范围,用空表和表尾边界测试。

错解反馈:凭生活语言理解“线性”容易把它等同直线地址;忽略 ,会在表头表尾题上失分;用某一种实现的复杂度替代抽象结构的必然性质,条件不充分。

迁移题(多选):空线性表可执行哪些操作?A 在位序 1 插入;B 删除位序 1;C 判空;D 取第 1 个元素。答案 A、C。在线验收要求先提交选项,再为未选项各给一句反例或越界依据。

小纸条

多选:空线性表可执行哪些操作?A 位序1插入 B 位序1删除 C 判空 D 取第1个元素

登录 后可看答案

Practice

本课练习

0

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

本课练习正在补齐,暂不应标记为完成。