第 1 题
数据结构线性表 含有 ()个元素,采用顺序存储方式保存。在 中原有元素相对次序保持不变且仍有空闲存储空间的情况下,下列操作中,一定会移动多个元素的是
I. 在表头插入一个元素
II. 在表头删除一个元素
III. 在表尾插入一个元素
IV. 在表尾删除一个元素
A. 仅 I、II
B. 仅 I、III
C. 仅 II、IV
D. 仅 III、IV
查看答案与解析
参考答案:A
答案:A。
顺序表把元素放在一段连续空间中,某个位置后的元素不能留下空洞,原有元素的相对次序也必须保持。设原表为[a,b,c,…]:
- 表头插入x,为给x腾出第一个位置,必须从后向前把全部n个原元素各移动一次,得到[x,a,b,c,…]。
- 删除表头a,后面n−1个元素必须向前补位。题设n≥3,所以n−1至少为2,也属于移动多个元素。
- 表尾插入只需把新元素写入当前末尾之后的空闲位置,再增加长度;题设有空闲空间,不需要扩容搬迁。
- 表尾删除只需减少长度,原有元素无需移动。
因此只有I、II一定移动多个原有元素,选A;B、C、D均错误地把某种表尾操作纳入。这里“写入新元素”和“移动原有元素”是不同的操作。