|
东 北 大 学 继 续 教 育 学 院9 H4 r5 V0 }* V6 O3 ]3 \
, I# |, e, G s9 l. q! b. q. l
数据结构II X 试 卷(作业考核 线上2) A 卷7 A9 |! S1 X: g, r S/ Y
. D9 e! e1 M+ b' l5 E8 K3 P学习中心: 院校学号: 姓名 K) s P* D+ |7 i6 H" O& K- U+ `8 Z( [
g( y- P! u8 V6 U4 x H
(共 6 页)
; ]4 ~+ R/ q( x% Q( R N总分 题号 一 二 三 四 五 六 七 八 九 十
0 {# D2 ]/ ^% x* ]7 z4 W 得分 $ L# F0 O. v, o% \! X7 D1 d
一、单选题(共30题,每题2分)
) ~% f$ ] j! t6 f/ z5 d4 b[ ]1.抽象数据类型的三个组成部分分别为
- C; g# k# S( I! EA.数据对象、数据关系和基本操作4 g7 u6 A" o: @* c8 p
B.数据元素、逻辑结构和存储结构0 e! J: _* e7 F( O9 i$ X% n( x0 l
C.数据项、数据元素和数据类型% G" w. W& O/ V4 p8 Y9 v
D.数据元素、数据结构和数据类型+ F) R1 y2 p z" k
[ ]2.要求相同逻辑结构的数据元素具有相同的特性,其含义为
2 N) \ s, r2 t. QA. 数据元素具有同一的特点: n! s# e, Z, e" a) {# }5 v- [
B. 不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致* {) y3 d; o9 c$ t- Z/ k5 c
C. 每个数据元素都一样
# K" T' R! F- C: rD. 仅需要数据元素包含的数据项的个数相同3 D* ^& W. D: q: w
[ ]3.下列各式中,按增长率由小至大的顺序正确排列的是3 W- g! S+ t7 V$ W. G- Q
A. ,n!,2n ,n3/2 : T) W5 W0 M5 Y4 R5 u! o
B.n3/2,2n,nlogn,2100
5 ?; k' H0 q" O+ s+ O9 R C.2n,log n,nlogn,n3/2 5 @+ ?6 a* R# s: P8 I' u# j
D.2100,logn, 2n, nn
8 D, J t7 I, D- i[ ]4. 在下列哪种情况下,线性表应当采用链表表示为宜
1 r6 g* I$ l9 T! g A.经常需要随机地存取元素
& [# g5 O$ p) }/ b1 P$ p& EB.经常需要进行插入和删除操作
4 S7 l/ j, r" b% v! W C.表中元素需要占据一片连续的存储空间 5 x& L/ a- w" h: V
D.表中元素的个数不变
2 d- y' k/ ?3 y[ ]5.设指针p指向双链表的某一结点,则双链表结构的对称性是. k( C+ R3 `3 z' v) I
A. p->prior->next=p->next->next; 9 h: Z0 ^, N- U2 d. @& i+ ]# O
B. p->prior->prior=p->next->prior;; E6 e4 @- x T/ Q% n
C. p->prior->next=p-> next->prior; $ R2 Y! p, g8 U- w p0 m( O" b
D. p->next->next= p->prior->prior;
: K- D% m! W1 |7 d[ ]6. 已知指针p和q分别指向某带头结点的单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为
+ e+ l- P" w7 w- F G: i A. s->next=q;p->next=s->next; " Z8 q4 g$ J! S
B. s->next=p;q->next=s->next;; K$ L- \( t( e; G0 X5 q
C. p->next=s->next;s->next=q;6 L# N1 h7 j" M" e0 n
D. q->next=s->next;s->next=p;) l: ]( \. j; e3 e( d
[ ]7. 栈和队列的共同特点是
6 A8 K: j" G, p9 Z, V9 J( o+ QA.只允许在端点处插入和删除元素8 |" G4 |! Z' o2 ]( t3 ]" T+ C3 G
B.都是先进后出 , }: t& \5 `* p3 \- b
C.都是先进先出2 V5 I; i: k% ^
D.没有共同点 0 r* k! a: t& ~
[ ]8. 对于链队列,在进行插入运算时.
8 A# U& w4 D8 U! \; \' s; E4 n5 { A. 仅修改头指针 3 m# I* m; N2 ?7 O9 y' j4 s8 _
B. 头、尾指针都要修改 n ~: [/ T! ?! W' @8 _
C. 仅修改尾指针
1 w" i+ u4 |9 p+ K. xD.头、尾指针可能都要修改% o. x7 R) z7 ~
[ ]9.设有一个顺序栈的入栈序列是1、2、3,则3个元素都出栈的不同排列个数为
6 V, g4 |, r3 L1 [0 o% J' J: M. l A.4 B.5 C. 6 D. 71 D. Z+ \& a: _
[ ]10.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是
1 `' Q0 {+ m+ r/ IA.A,B,C,D B.D,C,B,A
3 _# k Y& b5 {' r1 BC. A,C,D,B D. D,A,B,C# ?3 l: N7 f- s9 f/ c
[ ]11.表达式a*(b+c)-d的后缀表达式是
/ y" K" q9 M- n( I A.abcd*+- B.abc*+d- C.abc+*d- D.-+*abcd% ~, {) Z3 h( M: x4 n
[ ]12.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是
0 o" o* V8 E8 y7 GA. 空或只有一个结点 B.高度等于其结点数 ! H$ a, I9 f" |" @
C. 任一结点无左孩子 D.任一结点无右孩子
/ M) H, w. _" k; J- v0 Y' v[ ]13.下面的说法中正确的是
! \$ m0 [# @7 B& U (1)任何一棵二叉树的叶子结点在种遍历中的相对次序不变。: {4 N0 f& l: y/ o D- M8 R
(2)按二叉树定义,具有三个结点的二叉树共有6种。
! Q9 w1 y+ J$ G- b# X) vA.(1),(2) B.(1) - Q8 @, \2 _$ r l
C.(2) D.(1),(2)都错9 X1 P4 m2 |& ~. w1 z
[ ]14.树有先序遍历和后序遍历,树可以转化为对应的二叉树。下面的
% H3 _- O: _( ^7 Q说法正确的是
. ^, [) N/ Z' H/ n A.树的后序遍历与其对应的二叉树的先序遍历相同 : K3 Y: h- K3 [
B.树的后序遍历与其对应的二叉树的中序遍历相同
8 H, S0 a/ x! p& h: ]C.树的先序序遍历与其对应的二叉树的中序遍历相同 / H& h4 k( r' R+ ], @" `# a
D.以上都不对
* W; B: a0 q/ f$ E% B. m[ ]15.下列说法正确的是/ Q0 X9 @. H" q6 V
(1)二又树按某种方式线索化后,任一结点均有前趋和后继的线索
( T/ B4 f1 ]" O. C, b [* h4 O (2)二叉树的先序遍历序列中,任意一个结点均处于其子孙结点前. s. n# f, Q% a6 B: x7 C
(3)二叉排序树中任一结点的值大于其左孩子的值,小于右孩子的值
: Q f4 f n1 }. |A.(1)(2)(3) B.(1)(2) , G5 g. [2 ~6 N" L5 ?
C.(1)(3) D.都不对
& o' U& H6 f0 w[ ]16. 二叉树的第k层的结点数最多为
1 i: e5 n; i' u0 |& R" P! k! |" U A.2k-1 B.2K+1 $ d0 ^: P# M1 L' C" d/ w8 ^
C.2K-1 D. 2k-1
1 A' [2 U( k( h) z: `: l[ ]17.以下说法不正确的是: {' [. c. [: A$ o4 u* r* h8 P
A.无向图中的极大连通子图称为连通分量
6 _$ Y. P1 v- q1 `7 \7 z B.连通图的广度优先搜索中一般采用队列来暂存刚访问过的顶点
5 S2 h/ D; e) I5 U C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点- ^; V' Z) b6 E+ e
D.有向图的遍历不可采用广度优先搜索
7 k+ `5 L. y m* s }/ T[ ]18.有向图G用邻接矩阵A存储,则顶点i的入度等于A中
& X0 c% i4 i4 }A. 第i行1的元素之和 B. 第i列1的元素之和
- [+ _/ W- s6 u6 A! \9 H2 \C. 第i行0的元素个数 D. 第i列非0的元素个数
6 V! W- P) `# P/ R1 D[ ]19. 设有6个结点的无向图,该图确保是一个连通图的有效边条数至
8 ]8 R& d4 ]# z4 `+ o( l( }少应是
$ C$ _6 t! I+ y7 r$ d) M6 a, G% {A.5 B.6 C.7 D.8
4 _/ z: Z2 O* m1 v: I/ g [ ]20..下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是 , A- U, Y5 ], t7 ~0 i
9 z; A1 u$ c: W
A. V1V2V3V4V5 B. V1V2V3V5V4
, U8 L+ E& S% t% fC. V1V4V3V5V2 D.V1V3V4V5V2
2 j5 g1 |9 f" Y6 n5 l; _[ ]21.关键路径是事件结点网络中
; U5 R$ Q1 X. F( S$ T+ |& V& K A.从源点到汇点的最长路径 B.从源点到汇点的最短路径
+ Q* E! e3 q Z5 @( \) b C.最长的回路 D.最短的回路& c/ G, @% A' f
[ ]22.设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是: u; I/ w: S) j
A.8 B.3 C.5 D.9
m9 m. r- A g" g[ ]23..在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应调整以使其平衡,所作的平衡旋转是
5 R* Y _0 E/ d4 [* [A. LL型 B. LR型 C. RL型 D. RR型
! _/ s; E1 s$ o- e1 \! ~( E[ ]24.下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是/ m+ m. ~6 Y5 y
A.插入排序 B.选择排序
1 x9 I3 u9 j( G. Q' TC.快速排序 D.堆排序1 F9 n; f( l6 K3 T1 ?" a4 }& c# f
[ ]25.下列排序算法中,时间复杂度不受数据初始状态影响,恒为0(nlog2n)是4 @. A, [# {: c4 T5 s$ @
A. 堆排序 B. 冒泡排序 ; ]2 {$ k7 [; u
C. 直接选择排序 D. 快速排序
+ Q2 f. i. i8 s* U[ ]26. 有一程序段:i=1;WHILE(i<n) i=i*2;其中带下划线语句的执行次数的数量级是0 p( \2 s9 s8 B) R+ q2 F
A. O(n) B. O(log2n)
0 B' V5 ]" [" I2 Z( X' z3 e- y C. O(nlog2n) D. O(n2)
/ f. z- N+ r% R2 y7 }5 ^[ ]27.无头结点的链队列Q为空的条件是, {3 G+ e; _ T/ N$ o3 ] @# s
A. Q->front->next==Q->real=NULL 0 m% @7 H6 `- E1 u+ s
B. Q->front==Q->real<>NULL
% d T8 Z0 \% V& a; c/ z6 e$ aC. Q->real==Q->front=NULL . P2 Y" n$ [; F
D. Q->real->next==Q->front<>NULL . P* k2 b+ ~* x3 l7 n2 [9 j
[ ]28. 有向图G可拓扑排序的判别条件是2 j/ g& K! P _8 W; n
A. 不存在环 B. 存在环
1 Z b" h. U* d3 m) d; M& J8 wC. 存在入度为零的结点 D. 存在出度为零的结点
$ R0 c: B: Q# L% H. d* v0 r, W4 G# ~[ ]29. 对n个记录的文件进行快速排序,所需要的辅助存储空间
$ Y9 c) O5 _3 K3 [0 E' D% Q9 i# g+ X A. O(1) B. O(n) C. O(1og2n) D. O(n2)
3 w: z o5 C8 `9 h q! ][ ]30. 下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是
- R! P6 F% m' h# E7 P% {+ [ A.插入排序 B.选择排序
$ H7 z5 X% t" t0 e0 IC.快速排序 D.堆排序
( N7 g) w4 z+ b, m4 [二、综合题(共4题,每题10分)
1 ^7 l: K( B ^: l) |8 i8 j4 E31、阅读算法,在横线处填入语句或注释。
: K% J- k1 T; yvoid exchange_L( Linklist &L,int m ) { 0 S. k6 \4 l8 c
// 带头结点的单链表中前m个结点和后n个结点的整体互换- z6 C( N5 u$ N; S, W
if ( m && L->next ) { // 链表非空
4 q8 ^( Y: i1 C* O p = L->next; 2 ? o# K) n/ X5 j; u3 l
(1)// k取值& E- d1 j, U9 c( Q/ M3 p3 _# T
while( k< m && p ) { //(2)! o2 r) @: \& T' H- _
p = p->next; ++k;
+ d4 S6 B. {$ P# X3 k* h% n } // while
# ~* s( j4 f+ x* i3 N; X5 E- ~ if (p && (3)) { // n!=0 时才需要修改指针; J* J z4 B3 B; r
ha = L->next; // 以指针 ha 记a1结点的位置
2 V# \) p4 Y# g( R, Z- | L->next= p->next; // 将 b1 结点链接在头结点后2 N% c, m! Y, C J1 ^" C; W1 N
p->next =(4); // 设am的后继+ s2 U7 {. W1 o
* T% ?6 I3 e# M3 O+ ? q = L->next; // 令q 指向 b1结点
" V: `5 i- y i; A8 S while (q->next) . @" z( X. V6 {! Y
q = q->next; // 查找 bn 结点
9 |8 y2 b+ P) L9 o/ h q->next =(5)//将第 a1 结点链接到 bn 结点之后
# K7 V% S @0 M$ s7 R! K- U0 S- c } // if(p)
" ?0 Y1 y3 N; s2 b } // if(m)
1 Z7 A# g& u8 L5 o& e } // exchange_L $ Z- D6 a, B2 s- c+ T6 e
* Q6 J' X4 Q- E" L2 @0 i4 R. B. |$ w/ [
: d4 A# L' v' i
" K& h2 [# ]3 ^4 m% d; N
& F- _+ i4 q9 q2 a' |
% W6 [$ I% O3 X7 O$ I$ Y6 y1 _& c Z; P3 U# o6 C1 a
8 v- S& F# A9 ^, P% h) Y6 \
! u# x* ]/ Y6 E) P) s6 ^9 j+ e: \! Q$ \7 w4 e% j
$ V2 b$ L9 k' |; d1 _$ Z
32.一个仅包含二元运算符的算术表达式,以二叉链表形式存储在二叉树T中,设计算法F1实现求值,并指出遍历的方式。
5 O; P' K/ U2 J9 f9 O
7 l7 M( r z0 S% u: C0 A8 x% i5 z
% n4 o* S8 ?8 ~8 A; \
# Z3 M) b9 X5 t5 F. C6 C; ~) \$ ~7 g( }" R* A
. T$ p+ x$ t1 G2 F9 m
" e( @- ^* I( q, G- Z4 ~, T# h) Y( a9 {% Z+ T4 r+ u
$ H# f' r: X' D6 }( \! p# A7 W8 p% B/ j" Y( k7 g0 Y& ^
( m2 S# ]2 i" i8 ?, j: r0 ?# f6 y6 [
* ]" I* k4 a. I- f" R
7 U9 n" l3 ^$ I/ ]' P2 n4 \$ e
5 c2 K7 l; k# y: G0 N% u. k! X; M; |5 n" |, p# c0 d* e
33.设计算法实现以逆邻接表为存储结构的有向图的拓扑排序。
* ? k! Y8 T. a, W p1 Z逆邻接表存储结构定义如下:8 [+ d5 K/ v$ x3 i! }
顶点结构 表结点结构
% k- G) I: F6 G/ s2 s1 b* B& J0 Q& Tvexdata firstin * _, B! X. R8 A" l. w+ r7 c
adjvex nfo firstarc; _! |5 z3 n2 g# ^$ V
2 V8 X, m9 k5 `/ V
0 s( i/ X; ~0 U/ g
# \1 K9 R0 [0 G3 e* G* z
( {, l1 P% z- E/ ]
6 Z2 V5 g' z- A+ }: G
8 a5 O; J( w! v' P9 \. N" J/ O# C& G- G0 Z9 a5 D
0 J4 P$ V" U5 H, k
) {+ K' F/ F0 g! B/ Z! n0 {. x) S2 Z2 }7 M, [: I* I
) U2 h# E) r9 Q& [" _6 C
- |* M* ~7 F& L/ \" n! C" X
0 {4 Q. Q6 M0 ~5 \+ W0 g
3 C2 R9 w% I" j0 a2 d
$ t& U4 L" M$ @) I2 A4 }' b3 l
% }9 O' H* n8 {5 ]5 Z0 P: v9 D: S34. 设哈希表长为13,采用线性探测法解决冲突,哈希函数定义为:H(key)=key%13。 y; m- d8 H4 A7 M3 Z
试求:(1)填上依次插入关键字25,20,36,15,41,52,29,72,67后的哈希表。
+ G( ]5 q# R, j+ K7 q+ T" |5 r(2)计算等概率情况下,查找成功的平均查找长度。
/ z$ }6 m2 x# X1 H; V6 q, Y* n- B. n2 B, v8 B- d
( y3 O! `/ |% I
, L7 A% G1 T; |1 e4 _: X9 J% ?" [
& l0 d+ g& O8 @& l( X
# F& G8 n9 }4 Y/ J+ V, I) ~# F7 a
8 G O% A0 z" G* K" v0 C. P- g
- n# e1 R( J9 P9 }/ V9 s
3 R% T' k% K/ L* |: {
. E. \4 E+ h1 _( n2 Q# }& v' \
$ t2 @% f T) i e4 D+ _. @1 t. y. \: {/ }( Y* w! G
; g/ L8 C5 G+ i6 S3 I, z9 p
6 h4 Q- A* X/ ^3 d4 n8 i* n: u! u1 \( |1 r, m7 B v
+ Q: c4 _. p* J" n, \! ^$ b# h7 J/ l
6 A8 }; M. E6 t4 i! q* N; _% ?9 T+ _8 o# _# _
0 H) P$ v. {. C& C: B: Q; J
|
|