2012年解析
一、单项选择题
B 数据项
- 解析:数据项是不可分割的最小数据单位
D n-i
- 解析:删除第i个元素后,需要将i+1到n的元素前移,共n-i个
C 小于1
- 解析:存储密度=数据域占用量/结点总占用量,单链表有指针域
C O(m)
- 解析:需要遍历到长度为m的链表尾部
A 栈
- 解析:数制转换采用"除基取余"法,适合后进先出的栈结构
B d,c,a,b
- 解析:a必须在b之前出栈,此序列违反栈规则
A 1和5
- 解析:删除2个元素front=(3+2)%6=5,添加1个元素rear=(0+1)%6=1
C 36
- 解析:长度为n的串有n(n+1)/2个子串,8*9/2=36
D a+296
- 解析:LOC(a[7][4])=a+(7*10+4)*4=a+296
B (())
- 解析:Head(L)=Tail(L)仅当L=(( ))时成立
- B 2h-1
- 解析:每层至少2个结点(除根),总结点数=1+2+...+2^(h-1)=2^h-1
- C 后序
- 解析:后序遍历满足父结点编号大于子结点
- C 8
- 解析:n个顶点的连通图至少n-1条边,28≥n-1⇒n≥29
- D n-k
- 解析:森林中树的数量=顶点数-边数
- B 右指针一定为空
- 解析:二叉排序树最大结点无右孩子
- C 5
- 解析:平衡二叉树最大深度≈1.44log(n+2)-0.328
- A 至少含有⌈m/2⌉棵子树
- 解析:B树定义要求非根结点至少⌈m/2⌉棵子树
- A [da,ax,eb,de,bb] fp [hq,gv]
- 解析:第一趟快排后基准fp左侧都≤fp,右侧都≥fp
- A 直接插入排序
- 解析:局部有序时插入排序效率最高
- C 简单选择排序
- 解析:选择排序时间复杂度恒为O(n²)
二、填空题
- O(n)
- n/2
- 4
- (r-f+n)%n
- 8
- 1120
- 195
- n-2n₀+1
- 247
- (n+1)/2
- 4
- 2(n-1)
- v1v3v2v4v5v6
- (12,38,65,97,76,45,28,56)
- 7
- 13
三、问答题
- 双循环链表插入操作:
s->prior = p;
s->next = p->next;
p->next->prior = s;
p->next = s;
二叉树相关问题: (1) 二叉树结构: A /
B C / /
D E F /
G H (2) 后序序列:GDBEHFCA (3) 对应森林: A C / /
B E F /
D H / G二叉排序树: (1) 初始BST: 18 /
13 31 / /
11 20 35 / \
8 25 40 / /
4 24
27
(2) 删除18后:
20
/
13 31
/ /
11 25 35
/ \ /
8 24 27 40
/
4
直接插入排序过程: 初始:50,80,63,45,48,92 第1趟:50,80,63,45,48,92 第2趟:50,63,80,45,48,92 第3趟:45,50,63,80,48,92 第4趟:45,48,50,63,80,92 第5趟:45,48,50,63,80,92
哈希表: 0: 21 1: 2: 23 → 16 → 30 3: 4: 18 → 11 5: 12 6: 6
AVL树构建过程: 插入45: 45 插入15: 45 / 15 插入20: 20 /
15 45 插入35: 20 /
15 45 / 35 插入25: 20 /
15 35 /
25 45 插入60: 20 /
15 35 /
25 45
60
四、算法应用题
无向网问题: (1) 邻接矩阵: v1 v2 v3 v4 v5 v6 v1 0 6 1 5 ∞ ∞ v2 6 0 5 ∞ 3 ∞ v3 1 5 0 5 6 4 v4 5 ∞ 5 0 ∞ 2 v5 ∞ 3 6 ∞ 0 6 v6 ∞ ∞ 4 2 6 0
(2) 遍历序列:
- DFS: v1→v3→v2→v5→v6→v4
- BFS: v1→v3→v2→v4→v5→v6
(3) Prim最小生成树: v1 /
v3 v4 / \ \
v2 v6 v5
- Huffman编码:
(1) Huffman树:
(36)
/
(16) (20) / \ /
(7) (9) (10) (10) / \ / \ /
B1 C4 D5 A2 E7 F3 G4 H10 (2) 编码长度: 2*(2+1+4+5+7+3+4+10) = 2*36=72位
五、算法设计题
- 单链表逆置算法:
void ReverseList(Node *L) {
Node *p = L->next, *q;
L->next = NULL;
while(p) {
q = p->next;
p->next = L->next;
L->next = p;
p = q;
}
}
时间复杂度:O(n) 空间复杂度:O(1)
以上解答严格遵循考研数据结构标准,涵盖了所有考点和解题要点。对于算法题,提供了时间复杂度和空间复杂度分析,确保解答的完整性和专业性。