|
东 北 大 学 继 续 教 育 学 院
7 N* a2 |1 u3 ?, G* S3 D) M( B4 F) K. y- c$ o) U5 C
数据结构II X 试 卷(作业考核 线上2) B 卷4 Y- Y4 t6 P* |7 T% C- S. U3 f
4 a) D4 u3 K( k
学习中心: 院校学号: 姓名
# u z: g9 h* n' Y8 x* A! A! t& G* b. L
(共 8 页) , H* e% \1 v% t& m. a+ P
总分 题号 一 二 三 四 五 六 七
/ Z: ^; Q6 `( N: } 得分
; }: d3 G3 Q3 [1 S; F" z5 r
0 S/ Q+ e! [$ V一、单选题(更多资料下载:谋学网(www.mouxue.com)2分,共10小题,20分)
l0 ^% A6 |8 e1 G[ ] 1.抽象数据类型的三个组成部分分别为+ ~: u" O+ x* R* O# j) j
A.数据对象、数据关系和基本操作
; l# f! G M) ` B.数据元素、逻辑结构和存储结构
) ?2 ^. w. y' G/ i/ d C.数据项、数据元素和数据类型( B7 g; O0 d6 c+ C, h5 H& I9 N
D.数据元素、数据结构和数据类型
' T: z2 N* V! Z5 v( ^[ ] 2.下列各式中,按增长率由小至大的顺序正确排列的是/ Q- v ~6 g7 g$ E$ X& o' y: d
A. ,n!,2n ,n3/2 B.n3/2,2n,nlogn,2100
3 |' g1 ^, l+ L4 i. ]) z C.2n,log n,nlogn,n3/2 D.2100,logn, 2n, nn- h: c: s6 |' l' H
[ ] 3. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为
9 v- Q* Y* `. L, `. e G9 _: u+ o A. q->next=s->next;s->next=p; B. s->next=p;q->next=s->next;
2 A0 H% K) s! |/ _( `0 ^ b C. p->next=s->next;s->next=q; D. s->next=q;p->next=s->next;& S' ~! \8 ?5 B& o% l. s
[ ] 4.二维数组A[20][10]采用行优先的存储方法,若每个元素占2个存储单元,且第1个元素的首地址为200,则元素A[8][9]的存储地址为. R2 c1 f' |# h4 z, g# E, d
A.374 B.5764 p t0 t" K; [. x; o6 q* j6 m/ o
C.378 D.5809 \) I+ l9 ?9 F) L% x
[ ] 5.设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为3 W! \1 v& k' y1 `2 E
A.4 B.5
+ h7 R; @$ |) w& {- c3 uC. 6 D. 7 p3 [. I" D+ ?$ [* S/ C' c
- `$ T3 a. H1 C' O6 G4 A" B
[ ] 6. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为/ U$ C: H: L0 e+ M# o
A.5 B.6
+ r: s0 k$ T7 V( S5 O) Y C.7 D.8! ^1 L: t8 b, }/ L4 A2 x$ v1 c' c) S
[ ] 7.以下说法不正确的是
4 w: Q6 E9 ?& X0 J1 }3 }! u3 Y% A, q A.无向图中的极大连通子图称为连通分量
6 O7 f9 x7 C, L4 Y5 k B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点
6 |: a& g3 p6 f1 Z* J C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点
/ Y' b3 C9 q* @3 Y. N D.有向图的遍历不可采用广度优先搜索$ G u) k: ~; m4 N! f4 Q& w1 P. g
[ ] 8. 假设在构建散列表时,采用线性探测解决冲突。若连续插入的n个关键字都是同义词,则查找其中最后插入的关键字时,所需进行的比较次数为
4 L5 `" Z# L s! X; Y/ L7 ]5 F A. n-1 B. n C. n+1 D. n+27 I8 h2 ?. E/ j' T2 A
[ ] 9.设置溢出区的文件是4 q0 E- w/ x; s/ ]
A.索引非顺序文件 B.ISAM文件" P1 ^1 ^# L6 ~$ i# j
C.VSAM文件 D.顺序文件
- D$ s9 _9 ~- m[ ] 10. 已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。对这些子序列进行一趟两两归并的结果是
" @. l( b! o" ]8 UA.{25,36,48,72,23,40,79,82,16,35}; J/ `7 l" A8 r+ P# @: d" L" l
B.{25,36,48,72,16,23,40,79,82,35}. f. a1 l% F* x9 @+ U" i
C.{25,36,48,72,16,23,35,40,79,82}1 b6 Y2 M6 d$ [9 ?; u
D.{16,23,25,35,36,40,48,72,79,82}
% o. y \, N& ? {: l二、填空题(更多资料下载:谋学网(www.mouxue.com)1分,共10小题,10分)
. d; A5 G3 r$ [6 t s6 w. Y11.下面程序段中带下划线的语句的执行次数的数量级是( )。' z* _) t. T' u6 h& u
i=1; WHILE(i<n) i=i*2;
. y' @4 d4 y4 `1 m) P. o; h5 E12.假设带头结点的非空单循环链表中仅设尾指针L,则在第1个结点之前插入指针s所指结点的语句依次是( )。" r A8 U' X4 b9 B
13.无表头结点的链队列Q为空的条件是( )。& i( Y/ z+ P0 |) g* L" {: I. K
14.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为( )。
; ~* N3 L4 a4 n/ N9 V: N5 u15.一棵含999个结点的完全二叉树的深度为( )。5 s$ x' H5 y/ m
16.在AOV网 中,存在环意味着某项活动以自己为先决条件;对程序的数据流图来说,它表明存在( )。
5 P5 T. B0 S$ Y' x, Y; B6 z17. 有向图G可拓扑排序的判别条件是( )。" F, [& R1 V* m$ s& V
18.如果结点A有 3个兄弟,而且B是A的双亲,则B的度是( )。( Q% i. E- D" J' S/ [
19.应用回溯与分支限界法解决实际问题时,在搜索过程中利用判定函数,也称为( )。5 K& K' H P, U' }6 e2 b7 m
20. 若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是( )。
* U; Z' e/ p' {& a: x$ A三、应用题(更多资料下载:谋学网(www.mouxue.com)6分,共5小题,30分)( n# }: U4 x# H: R- a
21.比较线性表和栈的基本操作的不同点。
1 f+ Q9 a" Y& L' g
/ u2 E1 }7 S4 _" p% d* r2 I$ Y. p- |! e2 C( z' P) z, f
, A; A# l7 R4 w' B1 a0 s- J! `
7 ^ @: p; e6 k/ K" G7 p W R" q$ f t$ e* P
4 D! I R; d8 s5 S4 _0 P4 f' w
8 w& L# H: H+ Y, S7 N) B, s; t# G' a7 C
! U, d9 v! k; ~5 r5 U1 i# D) K
- g4 q/ e, a, x% }# e% {0 j
22.有一个二叉树按层次顺序存放在一维数组中,如下图所示:! C$ Y2 O1 V3 {
试求:(1)该树的后序遍历序列。
# z [. f( A" T! { (2)画出该树的后序线索树。1 F0 A8 u! x; K6 t! I
1 2 3 4 5 6 7 8 9 10 11 % n+ A2 K: `7 j+ y7 J( P' o
A C B E D
7 k) X7 @" Q! p7 L$ \& C1 E I' n8 }4 V+ P. ?9 A( G, K
8 v8 `' g* [1 }+ P
4 M0 m) K5 f5 H, y, o7 r; ?
: Q- y+ @* P! {5 j! X) @1 C) M) \ p# i2 ^5 v1 ?& W4 m
# ^$ N% \- N5 ]" h3 v
! X% D2 k# \+ [: V" J
6 i4 l) ^/ n0 o6 r/ x8 Y9 ~. `. N
) w1 g! k- v; O0 b
) M; [5 g7 f, A5 k2 ]% Q7 |23.分析顺序查找算法的“监视哨”设置作用
# W# F* h+ R y+ F$ g/ J" q9 X* j
3 m/ V. z: e% c9 b( ]2 H; P( E) b( T7 _: g; s0 E
2 E8 `5 a: x, m. _1 [
9 S3 ~5 J. X5 Q; q6 t
- E+ a, l# B' }% C' E' V( B! O
& o0 y7 r& T3 x' p7 o7 M# X, ~. M, v( \0 f- ]& Q0 Y+ s) A
4 u% [0 ?5 w3 j) H: y
1 e3 v2 T3 u$ F8 k
( h5 D: N4 v' u- d
24.对n个整数的序列进行直接选择排序。4 h3 G' \3 L0 s8 I& f
(1)算法描述。& v/ z- T# M2 P+ B/ \; ~7 V
(2)并给出实例(52 49 80 36 14 58 61 23 )的排序过程。. `, c f4 U! t. S' P( C% z6 p/ H
7 ~" W! O8 c$ B- ~# {8 I" @2 `- z0 q, r( L/ ?" [9 P
! Y: n/ k! M* v6 w; o# D; \! {7 M% t; z: _+ |3 C
# e( ]6 \+ C1 v" j/ Z0 G* ?6 {7 U' r. o
( Z3 I5 j; E8 W0 c; {4 ^8 ^/ b
. R/ {* a' D" n* o H# H4 v" Q6 O& U; c' I2 u
, K. s7 B1 f$ k" p+ k& v1 G: a# W; _2 t5 t
5 ^5 j" D& H' B& |
2 e5 J1 W9 D4 U0 k4 f
1 X( W; c3 |. S% t
8 Y, l* E& u& Z* W( \25. 已知有一个10个顶点的连通图,顶点编号为1至10,其边的关系集合表示为{(1,2)(1,3),(1,8),(2,4),(3,9),(3,10),(5,7),(6,7),(7,8),(8,9)},试求:画出该连通图及以顶点1为根的深度优先生成树。
, C/ O$ b2 D7 m w) C9 B3 @
% [9 l/ B1 T8 U" r0 i+ W1 j" [9 t
; y$ q! L& b$ L! H3 D; z V1 B
- P K* U! J5 k$ d t3 ?$ ?) ]# [! H
+ v/ w3 r' Z) [$ I6 z1 B& c& e5 |# o
. r7 I a7 C1 _) _# C/ y: j
7 R) g6 n% j3 V4 s' Z o* W" e- e' c% e# Q
' W" V# z8 F# Y
: ]7 \8 y. s6 v3 y9 h5 f/ v/ N; ?$ j- \0 N- U
2 {* O4 {4 _. w* M/ U
/ g9 `& M @+ o. ]( T
! f/ c$ O. M2 @" w0 x6 ~& w
8 V; d1 _% d2 w# E) e
, ~2 C- R2 {& N7 g
7 w5 F/ G5 s' x- X5 ~四、算法阅读题(本题10分)
; p8 A7 u2 v! w26.设计算法实现以链表作存储结构,将线性表中前m个元素和后n个元素进行整体互换,即(a1,…,am,b1,…,bn) 改变成(b1,…,bn,a1,…,am)。阅读算法,在横线处填入语句或注释。
* l: W+ {! z) ] void exchange_L( Linklist &L,int m ) { % T2 j- R. t5 m7 U
// 本算法实现单链表中前m个结点和后n个结点的整体互换
1 l* Y2 ]9 d& S$ @" g9 L' s if ( m && L->next ) { // 链表不空且# `0 \+ E& z; {, e9 i( ^* P% P8 w
p = L->next;
8 Q2 f0 H9 z, L( s (1)
/ F( S9 B: V' ^$ p/ K/ a/ y while( k< m && p ) { //(2)
1 G2 W8 ]- x0 R8 }& x1 T* u p = p->next; ++k; 3 B, d A5 U+ m- [# B I4 \/ u
} // while 6 s! W+ X% d2 r! ?3 O8 `
if (p && (3)) { // n!=0 时才需要修改指针1 D! B0 g/ a/ I+ C
ha = L->next; // 以指针 ha 记a1结点的位置
5 U. Y" V$ K1 B5 r( C (4)= p->next; // 将 b1 结点链接在头结点之后$ J, v7 ] b+ D- U* @; y+ Q$ W
p->next = NULL; // 设am的后继为空
; C {6 ~4 W* W q = L->next; // 令q 指向 b1结点
* n" b# k; H5 Z+ P& z: | while (q->next) / s- R, O% a3 k
q = q->next; // 查找 bn 结点 ) i' A1 w0 L6 G2 _5 f9 d& p4 H
q->next = ha; // (5)
1 w/ l4 Z! W3 @% R$ Y9 m% [+ l } // if(p)3 }& D% ~4 j' p0 X. ~, _& ^
} // if(m)& O- T4 y& @+ |" X
} // exchange_L , D2 S: x: T: C. h
8 z" g0 C- d0 p# ^(1)
% m$ G+ {2 |: I: j(2)
: O/ z$ b# K+ T4 z) x(3)/ I) P5 E' h/ o4 B% w5 r* h
(4); d* N/ L/ l X( I; [
(5)- v+ z/ ^- T: s) N$ T: P; d
, d/ e E, @2 j! T- E4 `3 B; K4 ^: U
$ ]/ ^* m+ L; K2 B7 L5 u2 X& c
$ h( `' b5 E% n4 w$ R
0 V9 t* B* n N( t& Y' {3 R: l e0 G( f$ z% ]
( F& s6 M4 h" \5 u5 e6 m
) L9 B3 d2 c" l5 M' a6 K
五、算法阅读题(本题10分)
P" c6 D5 y+ {- C3 Y27.设任意n个整数存放于数组A(1:n)中,阅读算法,指出功能及分析指针i和j的作用。
3 R$ Q6 g, q) e& a- a3 ?void Arrange(int A[],int n) {( t0 _2 u% J. T: U# O- {
// n个整数存于数组A中
8 w% ~7 _, A' t5 w# `6 D7 F1 X int i=0,j=n-1,x; // 数组下标从0开始0 @+ \" L! G3 J0 }* |# T
while(i<j){4 X& a& T/ \( X! E8 ~
while(i<j && A[i]>0) i++; 5 J) ?) G$ y) ]
while(i<j && A[j]<0) j--; 8 T( ~8 Q# g5 S* x0 J
if(i<j) { // 交换A[i] 与A[j]
' |* |; e# M0 D: q& n8 ] x=A[i]; A[i++]=A[j]; A[j--]=x;
+ _, T$ \: n' [& A }// if- U3 t5 H' \# K4 D( V* k# ?) q
}// while7 G- S! u6 l6 Z+ v
}//Arrange
! h/ x: ~* f- d+ v* h% D* i0 M2 p9 a% w
1 |! T& d6 y* a: ?# o8 G' j(1)功能:3 S. _- m$ u4 ]
(2)指针i和j的作用:
; c( v' V" z6 c1 U: h: Y2 Z9 t; K# l# j) I. C
六、算法设计题(本题10分)
8 U. a; K* i: u/ V, B( N28.设计算法purge_Sq实现删除顺序表SqList中重复元素,指出其算法的时间复杂度。
; E: f) t, R7 q; H4 I" o3 p F) v- H. ?0 X D E" e- z$ S) R
: ]% y1 ]4 g1 k+ \4 E4 `0 s7 h# @! Z/ C/ m
& L( g1 ~: D3 F3 M* A" L3 ~+ l B, ^8 T" N B' a/ x, I$ J
L3 C v K5 C3 S, J& V z/ X& l/ B+ r! d# K$ P- P
v5 g. V7 ?5 i$ }
8 b: v7 I0 h5 F7 z; t
" X" u& x u- y! N- D
, \; N5 g2 l$ z# l/ g6 N+ F; N- g- h, v" z
9 q0 ]2 I! k/ q) g+ C
# z" {/ C" f. J, {
3 @% R) G/ ]4 E! A: Y+ n! [, N
3 g+ o+ K1 O) s Q, e" x8 A
Q0 V* E8 D: J2 O! K$ T
2 P& ]( X% V. |1 z8 d七、算法设计题(本题10分)
$ m; j" A/ ^# Q5 Z7 S29.设计算法从图的邻接表结构转换成邻接矩阵结构的算法。" X. A7 p: Z/ u) J
& Y. l7 b3 T6 f- [3 ~ x0 D% o' D
" ~( ~- l$ n4 F' O3 P5 m2 R8 I* | L2 t
3 Q# d1 F7 G' h$ k4 i# v$ m; b
l, U: k Y U" b- p. R5 R# N
4 F7 f9 q( n/ I: ~( c
/ v' {/ ^% i! S- u. \6 r4 z, b9 ^ r& C0 D3 a$ O* X% [! }
, E+ M: V) P) q. b/ z" R/ Y( i, I
) ~- K' w% O) S9 |( _6 v" |
4 K/ Y! A3 T. W( V4 Q$ H
5 D9 ?3 H- E4 A6 u. ]& z
7 {+ O H1 W3 w+ U9 D9 g; Q
: A% j- J7 R5 i; z( i# w% P P" U" i( `2 R m
8 W7 Y: a4 S! Q) J% |0 [9 P0 X. U# `- K* ~
' a" p! z/ v" V) C& y, G! _# r6 S8 `2 ~2 z
|
|