应用台导航页
  • 主页
  • 博客
  • 知识库
  • 工作台
  • 集萃
  • 友链
  • 关于
数据结构线性表真题

数据结构线性表真题

应试
更新于 2026-11-12
— 3584 字
返回

2021年

【2021年题1】 已知头指针 h 指向一个带头结点的非空单循环链表,结点结构为

其中 next 是指向直接后继结点的指针,p 是尾指针,q 是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。

A. h->next = h->next->next; q = h->next; free(q);

B. q = h->next; h->next = h->next->next; free(q);

C. q = h->next; h->next = q->next; if(p != q)p = h; free(q);

D. q = h->next; h->next = q->next; if(p == q)p = h; free(q);

解析:

如图 1 所示,要删除带头结点的非空单循环链表中的第一个元素,就要先用临时指针 q 指向待删结点,q = h->next;然后再将 q 从链表中断开,h->next = q->next(这一步也可写成 h->next = h->next->next);此时要考虑一种特殊情况,若待删结点是链表的尾结点,即循环单链表中只有一个元素(p 和 q 指向同一个结点),如图 2 所示,则在删除后要将尾指针指向头结点,即 if(p == q) p = h;最后释放 q 结点即可,答案选 D。

[链表删除示意图]


【2021年题2】 已知初始为空的队列 Q 的一端仅能进行入队操作,另外一端既能进行入队操作又能进行出队操作。若 Q 的入队序列是 1, 2, 3, 4, 5,则不能得到的出队序列是( )。

A. 5, 4, 3, 1, 2   B. 5, 3, 1, 2, 4   C. 4, 2, 1, 3, 5   D. 4, 1, 3, 2, 5

解析:

假设队列左端允许入队和出队,右端只能入队。对于 A,依次从右端入队 1, 2,再从左端入队 3, 4, 5。对于 B,从右端入队 1, 2,然后从左端入队 3,再从右端入队 4,最后从左端入队 5。对于 C,从左端入队 1, 2,然后从右端入队 3,再从左端入队 4,最后从右端入队 5。无法验证 D 的出队序列,故选 D。

[队列操作示意图]

【另解】队列两端都可以入队,入队结束后,队列中的序列(或逆序)可视输出队序列。由于入队序列是从小到大的顺序,因此左端入队的子序列满足从大到小的顺序,右端入队的子序列满足从小到大的顺序。A、B 和 C 都满足这样特点,只有 D 不满足,故选 D。


【2021年题3】 已知二维数组 A 按行优先方式存储,每个元素占用 1 个存储单元。若元素 A[0][0] 的存储地址是 100,A[3][3] 的存储地址是 220,则元素 A[5][5] 的存储地址是( )。

A. 295   B. 300   C. 301   D. 306

解析:

二维数组 A 按行优先存储,每个元素占用 1 个存储单元,由 A[0][0] 和 A[3][3] 的存储地址可知 A[3][3] 是二维数组 A 中的第 121 个元素,假设二维数组 A 的每行有 n 个元素,则 n×3+4=121n \times 3 + 4 = 121n×,求得 ,故元素 A[5][5] 的存储地址为 ,故选 B。

相关内容

  • 408计算机考研数据结构树真题——选择题

    408计算机考研数据结构树真题——选择题

    更新于2026-11-12

  • 数据结构排序真题

    数据结构排序真题

    更新于2026-11-12

  • 计算机考研408数据结构-图专题2009-2020年真题

    计算机考研408数据结构-图专题2009-2020年真题

    更新于2026-11-12

  • 408考研数据结构查找真题

    408考研数据结构查找真题

    更新于2026-11-12

  • 408计算机组成原理真题——存储系统选择题

    408计算机组成原理真题——存储系统选择题

    更新于2026-11-11

文章大纲

  • 2021年
  • 2022年
  • 心得笔记

选项
文章 ID: 691

相关内容

  • 408计算机考研数据结构树真题——选择题

    408计算机考研数据结构树真题——选择题

    更新于2026-11-12

  • 数据结构排序真题

    数据结构排序真题

    更新于2026-11-12

  • 计算机考研408数据结构-图专题2009-2020年真题

    计算机考研408数据结构-图专题2009-2020年真题

    更新于2026-11-12

  • 408考研数据结构查找真题

    408考研数据结构查找真题

    更新于2026-11-12

  • 408计算机组成原理真题——存储系统选择题

    408计算机组成原理真题——存储系统选择题

    更新于2026-11-11

3
+
4=
121
n=39n = 39n=39
100+39×5+6−1=300100 + 39 \times 5 + 6 - 1 = 300100+39×5+6−1=300

2022年

【2022年题01】 下列程序段的时间复杂度是( )。

c
int sum = 0;
for (int i = 1; i < n; i *= 2)
for (int j = 0; j < i; j++)
sum++;

A. O(log⁡n)O(\log n)O(logn)   B. O(n)O(n)O(n)   C. O(nlog⁡n)O(n\log n)O(nlogn)   D. O(n2)O(n^2)O(n

解析: B。当外层循环的变量 iii 取不同值时,内层循环就执行多少次,因此总循环次数为 iii 的所有取值之和。假设外层循环共执行 kkk 次,当 i=1,2,4,8,⋯ ,2k−1(2k−1<n≤2k)i=1,2,4,8,\cdots,2^{k-1}(2^{k-1}<n\le 2^k)i=1,2,4,8,⋯, 时,内层循环执行 次,因此总循环次数 ,即 ,时间复杂度为 。


【2022年题02】 给定有限符号集 S,in 和 out 均为 S 中所有元素的任意排列。对于初始为空的栈 ST,下列叙述中,正确的是( )。

A. 若 in 是 ST 的入栈序列,则不能判断 out 是否为其可能的出栈序列

B. 若 out 是 ST 的出栈序列,则不能判断 in 是否为其可能的入栈序列

C. 若 in 是 ST 的入栈序列,out 是对应 in 的出栈序列,则 in 与 out 一定不同

D. 若 in 是 ST 的入栈序列,out 是对应 in 的出栈序列,则 in 与 out 可能互为倒序

解析: D。通过模拟出入栈操作,可以判断入栈序列 in 和出栈序列 out 是否合法。因此,已知 in 序列可以判断 out 序列是否为可能的出栈序列;已知 out 序列也可以判断 in 序列是否为可能的入栈序列,A 和 B 错误。如果每个元素入栈后立即出栈,则 in 序列和 out 序列相同,C 错误。如果所有元素都入栈后才依次出栈,则 in 序列和 out 序列互为倒序,D 正确。


【2022年题03】 若结点 p 与 q 在二叉树 T 的中序遍历序列中相邻,且 p 在 q 之前,则下列 p 与 q 的关系中,不可能的是( )。

I. q 是 p 的双亲   II. q 是 p 的右孩子

III. q 是 p 的右兄弟   IV. q 是 p 的双亲的双亲

A. 仅 I   B. 仅 III   C. 仅 II、III   D. 仅 II、IV

解析: B。对于此类题,每种情况只需举出一个反例即可。如图 1 所示,q 是 p 的双亲,中序遍历序列为 {p, q},I 可能。如图 2 所示,q 是 p 的右孩子,中序遍历序列为 {p, q},II 可能。如图 4 所示,q 是 p 的双亲的双亲,中序遍历序列为 {x, p, q},IV 可能。如图 3 所示,q 是 p 的右兄弟,F 是 q 和 p 的父结点,中序遍历要求先遍历左子树,再访问根结点,最后遍历右子树,因此一定先访问 p,再访问 F,最后访问 q,p 和 q 不可能相邻出现,III 不可能。


【2022年题04】 若三叉树 T 中有 244 个结点(叶结点的高度为 1),则 T 的高度至少是( )。

A. 8   B. 7   C. 6   D. 5

解析: C。高度一定的三叉树中结点数最多的情况是满三叉树。高度为 5 的满三叉树的结点数 =30+31+32+33+34=121=3^0+3^1+3^2+3^3+3^4=121=30+31+32+33,高度为 6 的满三叉树的结点数 。由于三叉树 T 的结点数为 244,,因此 T 的高度至少为 6。


【2022年题05】 对任意给定的含 n (n>2)n\ (n>2)n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。下列叙述中,正确的是( )。

A. T1 与 T2 的结点数相同   B. T1 的高度大于 T2 的高度

C. 出现频次不同的字符在 T1 中处于不同的层

D. 出现频次不同的字符在 T2 中处于相同的层

解析: D。可以画一个简单的特例来证明。图 1 是满足条件的二叉树 T1,图 2 是满足条件的二叉树 T2,结点中有值表示这个结点是编码字符。T1 和 T2 的结点数不同,A 错误。T1 的高度等于 T2 的高度,B 错误。出现频次不同的字符在 T1 中也可能处于相同的层,C 错误。对于定长编码集,所有字符一定都在 T2 中处于相同的层,而且都是叶子结点。


【2022年题06】 对于无向图 G=(V,E)\text{G}=(\text{V}, \text{E})G=(V,E),下列选项中,正确的是( )。

A. 当 ∣V∣>∣E∣\vert{}\text{V}\vert{}>\vert{}\text{E}\vert{}∣V∣>∣E∣ 时,G 一定是连通的

B. 当 ∣V∣<∣E∣\vert{}\text{V}\vert{}<\vert{}\text{E}\vert{}∣V∣<∣E∣ 时,G 一定是连通的

C. 当 ∣V∣=∣E∣−1\vert{}\text{V}\vert{}=\vert{}\text{E}\vert{}-1∣V∣=∣E∣−1 时,G 一定是不连通的

D. 当 ∣V∣>∣E∣+1\vert{}\text{V}\vert{}>\vert{}\text{E}\vert{}+1∣V∣>∣E∣+1 时,G 一定是不连通的

解析: D。注意,V 是图的边数,E 是图的顶点数。A 和 B 明显错误,如图 1 所示,∣V∣<∣E∣\vert{}\text{V}\vert{}<\vert{}\text{E}\vert{}∣V∣<∣E∣,但图 G 不连通;如图 2 所示,∣V∣>∣E∣\vert{}\text{V}\vert{}>\vert{}\text{E}\vert{}∣V∣>∣E∣,但图 G 不连通。如图 3 所示,在无向图中至少要有 ∣V∣−1\vert{}\text{V}\vert{}-1∣V∣− 个顶点才可能连通,顶点数小于 一定不可能连通,C 错误,D 正确。


【2022年题07】 下图是一个有 10 个活动的 AOE 网,时间余量最大的活动是( )。

A. c   B. g   C. h   D. j

解析: B。在 AOE 网中,活动的时间余量 = 结束顶点的最迟开始时间 - 开始顶点的最早开始时间 - 该活动的持续时间。根据关键路径算法得到下表。

c 的时间余量 =vl(3)−ve(2)−1=5−2−1=2=\text{vl}(3)-\text{ve}(2)-1=5-2-1=2=vl(3)−ve(2)−1=5−2−1=2,g 的时间余量 =vl(6)−ve(3)−1=12−5−1,h 的时间余量 ,j 的时间余量 ,时间余量最大的活动是 g。


【2022年题08】 在下图所示的 5 阶 B 树 T 中,删除关键字 260 之后需要进行必要的调整,得到新的 B 树 T1。下列选项中,不可能是 T1 根结点中关键字序列的是( )。

A. 60, 90, 280   B. 60, 90, 350   C. 60, 85, 110, 350   D. 60, 90, 110, 350

解析: D。在 5 阶 B 树中,除根结点外的非叶结点的关键字数 kkk 需要满足 2≤k≤42\le k\le 42≤k≤4。当被删关键字 x 不在终端结点(最低层非叶结点)时,可以用 x 的前驱(或后继)关键字 y 来替代 x,然后在相应结点中删除 y。情况①:删除 260,将其前驱 110 放入 260 处,删除 110 后的结点 <100> 不满足 5 阶 B 树定义,从左兄弟中借 85,将 85 放入根中,将根中的 90 移入结点 <100> 变为 <90, 100>。情况②:删除 260,将其后继 280 放入 260 处,结点 <300> 不满足 5 阶 B 树定义且左右兄弟都不够借,结点 <300> 可以和左兄弟 <100, 110> 以及关键字 280 合并成一个新的结点 <100, 110, 280, 300>。情况③:在情况②中,结点 <300> 也可以和右兄弟 <400, 500> 以及关键字 350 合并成一个新的结点 <300, 350, 400, 500>。综上,T1 根结点中的关键字序列可能是 <60, 85, 110, 350> 或 <60, 90, 350> 或 <60, 90, 280>,仅 D 不可能。


【2022年题09】 下列因素中,影响散列(哈希)方法平均查找长度的是( )。

I. 装填因子   II. 散列函数   III. 冲突解决策略

A. 仅 I、II   B. 仅 I、III   C. 仅 II、III   D. I、II、III

解析: D。填装因子越大,说明哈希表中存储的元素越满,发生冲突的可能性就越高,导致平均查找长度越大。散列函数、冲突解决策略也会影响发生冲突的可能性。I、II、III 都正确。


【2022年题10】 使用二路归并排序对含 nnn 个元素的数组 M 进行排序时,二路归并操作的功能是( )。

A. 将两个有序表合并为一个新的有序表

B. 将 M 划分为两部分,两部分的元素个数大致相等

C. 将 M 划分为 nnn 个部分,每个部分中仅含有一个元素

D. 将 M 划分为两部分,一部分元素的值均小于另一部分元素的值

解析: A。送分概念题。王道书对归并的定义原话是“归并的含义是将两个或两个以上的有序表合并成一个新的有序表”,而二路归并是将两个有序表合并为一个新的有序表。


【2022年题11】 对数据进行排序时,若采用直接插入排序而不采用快速排序,则可能的原因是( )。

I. 大部分元素已有序   II. 待排序元素数量很少

III. 要求空间复杂度为 O(1)O(1)O(1)   IV. 要求排序算法是稳定的

A. 仅 I、II   B. 仅 III、IV   C. 仅 I、II、IV   D. I、II、III、IV

解析: D。直接插入排序和快速排序的特点如下表所示。

心得笔记

  1. 带头节点的单循环链表跟我想的不一样,其中最后一个结点的指针域指向头结点,而不是第一个元素。
2
)
2k−1
(
2k−1
<
n≤
2k)
iii
T=1+2+4+8+⋯+2k−1=2k−1T=1+2+4+8+\cdots+2^{k-1}=2^k-1T=1+2+4+8+⋯+2k−1=2k−1
n<T<2nn<T<2nn<T<2n
O(n)O(n)O(n)
+
34=
121
=30+31+32+33+34+35=364=3^0+3^1+3^2+3^3+3^4+3^5=364=30+31+32+33+34+35=364
121<244<364121<244<364121<244<364
1
∣V∣−1\vert{}\text{V}\vert{}-1∣V∣−1
=6=\text{vl}(6)-\text{ve}(3)-1=12-5-1=6
=vl(6)−ve(3)−1=12−5−1=6
=vl(5)−ve(4)−1=11−8−1=2=\text{vl}(5)-\text{ve}(4)-1=11-8-1=2=vl(5)−ve(4)−1=11−8−1=2
=vl(6)−ve(5)−1=12−9−1=2=\text{vl}(6)-\text{ve}(5)-1=12-9-1=2=vl(6)−ve(5)−1=12−9−1=2
dors logoDors

Dors 是花野猫开发为知识工作者打造的数字花园应用,包含的博客、个人记事本、及其他实用功能。

花园

  • 花坛——博客
  • 果园——知识库

工坊——作者开发的实用工具

  • 小记
  • 秒切——一键按秒分割视频
  • 中国重点高校地理位置可视化网站
  • 中国行政区划数据查询平台
  • excel 重命名工具

misc

  • 生活章程
  • 画廊
  • just have fun!
  • © 2022 - present. All Rights Reserved.滇ICP备2025063395号-1

    花野猫打造