|
东 北 大 学 继 续 教 育 学 院
' N' R+ P% A! }' s4 P1 ^% ~+ j$ {, N7 D
数据结构II X 试 卷(作业考核 线上2) A 卷' a3 W+ ]8 L$ U) o: P
% K/ r5 s }8 Q学习中心: 院校学号: 姓名 5 q# I1 n: P6 i
K/ ^( n7 F( R
(共 6 页)
* ]# B9 k- L8 C% x) H; F! X" E( a总分 题号 一 二 三 四 五 六 七 八 九 十
# k- N- j, j2 U' h. ` 得分 4 t W/ v; T: B: k
一、单选题(共30题,每题2分)
1 U& W) ?9 ]" D$ ?' A. @ F[ ]1.抽象数据类型的三个组成部分分别为
& K# @9 l9 z2 a2 U% F9 |' eA.数据对象、数据关系和基本操作* y, a' b2 t1 h* f! K
B.数据元素、逻辑结构和存储结构( V9 R0 c2 F! ^, s9 w, n
C.数据项、数据元素和数据类型
, n7 P4 S* y4 Z8 L D.数据元素、数据结构和数据类型/ Q. W1 g4 g9 `
[ ]2.要求相同逻辑结构的数据元素具有相同的特性,其含义为9 N2 u! S# q2 P( k% n$ K4 z
A. 数据元素具有同一的特点
; L1 K7 y6 |! j. l3 k6 bB. 不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致
+ U& U% P C) r7 s+ y8 S2 z* iC. 每个数据元素都一样6 @* P) y1 v5 F/ n* `
D. 仅需要数据元素包含的数据项的个数相同) g9 C; Q0 F( z
[ ]3.下列各式中,按增长率由小至大的顺序正确排列的是- f+ {9 s: a3 k9 m, k9 p
A. ,n!,2n ,n3/2
; Z( d" v a; ]3 `B.n3/2,2n,nlogn,2100
, f7 E8 l( g. |. C& n C.2n,log n,nlogn,n3/2 % e) }! z) S, r0 A2 F
D.2100,logn, 2n, nn
5 ?% g* s# e2 V2 Y' @) I' o; y[ ]4. 在下列哪种情况下,线性表应当采用链表表示为宜
8 U2 |; `1 w0 c; ~2 p) H, J A.经常需要随机地存取元素 6 u/ O. V$ q$ T( }2 D
B.经常需要进行插入和删除操作
- \6 Z. \' T% Z- U K' H* @' ] w' o7 F C.表中元素需要占据一片连续的存储空间
J$ [3 z4 J* X# HD.表中元素的个数不变9 t3 r2 t+ g U
[ ]5.设指针p指向双链表的某一结点,则双链表结构的对称性是3 ] } d6 B! w5 D& \% v
A. p->prior->next=p->next->next;
# C1 A* C6 `: _4 _ N I9 I5 nB. p->prior->prior=p->next->prior;, z% E) s% V1 c1 C8 `( |) t
C. p->prior->next=p-> next->prior;
9 p, m3 Z, q0 J* E% eD. p->next->next= p->prior->prior;9 k% [4 ^( Y. i
[ ]6. 已知指针p和q分别指向某带头结点的单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为
, T& t6 u$ ^9 Y' S9 J A. s->next=q;p->next=s->next; . L; b7 y$ A. h, @2 ^
B. s->next=p;q->next=s->next;' Q8 [" A; j6 k' [1 u
C. p->next=s->next;s->next=q;2 j& Z8 `& U# N3 J) u4 M
D. q->next=s->next;s->next=p;
- ?6 W% d* l& k1 S# A4 o[ ]7. 栈和队列的共同特点是
1 p, n2 P1 w# c! J. r. g Y' W: DA.只允许在端点处插入和删除元素
7 C# a# U6 B- i8 H( ]1 P YB.都是先进后出
- @, S4 S `; o! U. K" q V0 h: hC.都是先进先出
: z$ G# e- s8 X$ n0 T, OD.没有共同点 $ U' `" W& n% {1 u* O3 i; e
[ ]8. 对于链队列,在进行插入运算时.
6 D H6 E+ E6 F( m A. 仅修改头指针
! G6 S$ a/ i( Q t4 qB. 头、尾指针都要修改0 g8 R, y- Y% l* Q5 ~# w2 V
C. 仅修改尾指针 7 z* q, H6 n' u$ D) i6 ~
D.头、尾指针可能都要修改
; I6 H1 t# n" R7 \" ?6 h[ ]9.设有一个顺序栈的入栈序列是1、2、3,则3个元素都出栈的不同排列个数为
- P, V, R$ `& q8 Q A.4 B.5 C. 6 D. 7
% t0 c0 M8 C; G" Y" \ P[ ]10.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是 d) o1 b, n* I! a
A.A,B,C,D B.D,C,B,A
5 Z; \* a2 d q6 @) h" K& X2 RC. A,C,D,B D. D,A,B,C
! i! w( x; p6 m& i[ ]11.表达式a*(b+c)-d的后缀表达式是5 c; Q8 O1 X( F/ B: J: i" b
A.abcd*+- B.abc*+d- C.abc+*d- D.-+*abcd+ W6 B5 b) v2 I: |2 e9 }
[ ]12.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是
* ?! v7 p; g# m& HA. 空或只有一个结点 B.高度等于其结点数 . G1 w( I6 F+ y1 g5 z
C. 任一结点无左孩子 D.任一结点无右孩子
3 u1 p) u6 j: ^[ ]13.下面的说法中正确的是
b/ f [6 F. m6 q (1)任何一棵二叉树的叶子结点在种遍历中的相对次序不变。0 Z2 e6 ]( f. J7 s. o; |
(2)按二叉树定义,具有三个结点的二叉树共有6种。' S6 ~8 b, S7 l2 u1 J0 r c
A.(1),(2) B.(1) $ \# Y- I2 d: n/ u% y# S1 c
C.(2) D.(1),(2)都错 ~' X+ B$ m u$ |$ O3 V: M, _
[ ]14.树有先序遍历和后序遍历,树可以转化为对应的二叉树。下面的
, a! [. {6 r% }1 m/ r( |# k说法正确的是
0 o% I: S% }9 X) T" J A.树的后序遍历与其对应的二叉树的先序遍历相同
. ?1 w% x) r- y* j" dB.树的后序遍历与其对应的二叉树的中序遍历相同
& l ^! j8 T; YC.树的先序序遍历与其对应的二叉树的中序遍历相同
+ j" `/ m1 u. q) V7 o! h7 E r+ z. lD.以上都不对
5 z) \" S) L T2 w% U* N* {$ E" i# D[ ]15.下列说法正确的是
( F4 a" L- t1 V (1)二又树按某种方式线索化后,任一结点均有前趋和后继的线索; t- a" `- Y8 h: L% o$ x$ g
(2)二叉树的先序遍历序列中,任意一个结点均处于其子孙结点前9 i& _; O6 z3 O4 S" }: K
(3)二叉排序树中任一结点的值大于其左孩子的值,小于右孩子的值$ G: c: ` O- a
A.(1)(2)(3) B.(1)(2)
) o% ?* Z9 R- q6 g: MC.(1)(3) D.都不对
; W6 {( B; L/ r& V[ ]16. 二叉树的第k层的结点数最多为& m- n; Q0 k" s% ]% d, B6 t# E
A.2k-1 B.2K+1 % w. N" l# c% W8 g! w
C.2K-1 D. 2k-1
) A! E* k% E- I1 p[ ]17.以下说法不正确的是- a- x$ k- Y9 }0 n" s
A.无向图中的极大连通子图称为连通分量$ u6 ^ f6 F! \6 P! B! I9 O
B.连通图的广度优先搜索中一般采用队列来暂存刚访问过的顶点
/ d% s/ ?* A5 l# T8 T- }. U& K C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点% L+ r4 P/ t( i6 T* T2 } g
D.有向图的遍历不可采用广度优先搜索$ F% }# m( n. e% }9 V
[ ]18.有向图G用邻接矩阵A存储,则顶点i的入度等于A中
7 h! n6 y0 a% t+ {A. 第i行1的元素之和 B. 第i列1的元素之和7 N7 c5 U3 A0 H9 Q% B0 Q1 X4 k
C. 第i行0的元素个数 D. 第i列非0的元素个数
! D3 W7 \2 \: j; s[ ]19. 设有6个结点的无向图,该图确保是一个连通图的有效边条数至+ {! T( A% J% [
少应是
6 P- y" ]. P6 y2 ?! n5 R/ ~A.5 B.6 C.7 D.8
# k% ?. G p9 U [ ]20..下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是 V5 n! p9 L* a( C( _' q
& o8 Y8 f" a9 jA. V1V2V3V4V5 B. V1V2V3V5V4
. A, T. A0 s# l# U* z8 HC. V1V4V3V5V2 D.V1V3V4V5V2
9 P; o; Q$ N4 B& i[ ]21.关键路径是事件结点网络中& i1 V7 ^- Z2 H
A.从源点到汇点的最长路径 B.从源点到汇点的最短路径
- b- _" e- _$ q+ c4 S6 C, `3 N' T C.最长的回路 D.最短的回路1 C8 V) S4 I. V0 c, i3 C
[ ]22.设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是
& K% V& p3 c9 S, R5 u4 a+ n A.8 B.3 C.5 D.91 x6 q% s% L" h, U+ k( z L
[ ]23..在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应调整以使其平衡,所作的平衡旋转是 B; k4 H7 E8 N z0 l
A. LL型 B. LR型 C. RL型 D. RR型- N9 z4 I% F' g8 ^- t) C
[ ]24.下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是( G7 E2 L* I& V- G- S" V' N8 d1 T8 h& p
A.插入排序 B.选择排序
- [8 @! W; |, [2 ~C.快速排序 D.堆排序+ y+ ~2 K7 D. F6 _" T6 p
[ ]25.下列排序算法中,时间复杂度不受数据初始状态影响,恒为0(nlog2n)是
, c: ~5 R. c" QA. 堆排序 B. 冒泡排序 k1 i/ W W4 t9 }6 T5 t7 s
C. 直接选择排序 D. 快速排序: ?& h# i2 U% g% J3 P
[ ]26. 有一程序段:i=1;WHILE(i<n) i=i*2;其中带下划线语句的执行次数的数量级是- M: G9 k% k* m f2 k
A. O(n) B. O(log2n)
% c% ?# {/ r: T; g C. O(nlog2n) D. O(n2)8 L8 F: W; U7 o) O: U$ ~3 \9 `
[ ]27.无头结点的链队列Q为空的条件是
; [% M2 U2 e' e7 Z& r9 vA. Q->front->next==Q->real=NULL 7 u5 a4 J( s E/ h' I
B. Q->front==Q->real<>NULL
( B+ H) S+ M' a$ H& T3 u1 R- tC. Q->real==Q->front=NULL ' d$ T9 v8 ~3 v6 O
D. Q->real->next==Q->front<>NULL % ^+ G7 [ Y$ S6 S0 T; C2 p4 J
[ ]28. 有向图G可拓扑排序的判别条件是1 {$ S( ]! p1 d J. | z
A. 不存在环 B. 存在环 # J# U( {5 C3 c9 c: Q
C. 存在入度为零的结点 D. 存在出度为零的结点
7 Z1 B! @" k# e$ f( o o[ ]29. 对n个记录的文件进行快速排序,所需要的辅助存储空间) {0 s9 H+ n2 r8 a0 P. X
A. O(1) B. O(n) C. O(1og2n) D. O(n2)( h" l- b& S9 {$ v$ @
[ ]30. 下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是2 I2 }& o3 k( g$ y# C" w+ ?* n: j
A.插入排序 B.选择排序
# S" b& F: I! @# K- u# sC.快速排序 D.堆排序+ t- u6 D: w$ D5 l |* K
二、综合题(共4题,每题10分)
% `2 U& B1 ]: x& x6 j31、阅读算法,在横线处填入语句或注释。
, p% Y0 |9 N# o! @& B6 B2 Gvoid exchange_L( Linklist &L,int m ) { 5 F" a6 r2 H6 E2 `3 g& ]0 E. X2 X" Y
// 带头结点的单链表中前m个结点和后n个结点的整体互换* w" d2 x! D' Z+ t M) Y& @
if ( m && L->next ) { // 链表非空
x" O: w. I; R; E4 R p = L->next; 6 F9 Z3 Q& s- d3 g& O; Z ?
(1)// k取值* E3 a* m- i2 C% Y/ G# d
while( k< m && p ) { //(2)
3 m5 v5 V7 u0 P0 \/ Q3 W( k: x0 Y p = p->next; ++k;
2 q7 c" r3 \' Z3 S1 | } // while
5 Z: D0 j6 d9 L4 n- w- Q if (p && (3)) { // n!=0 时才需要修改指针( Q1 ?1 W# k& C$ ]
ha = L->next; // 以指针 ha 记a1结点的位置+ c- R% U c, |3 @1 H
L->next= p->next; // 将 b1 结点链接在头结点后/ {( [3 z( |6 y, U5 r
p->next =(4); // 设am的后继& m% p9 \$ G2 s6 {8 _ {+ k
0 v) Y4 R6 S! X# g! V7 y( h
q = L->next; // 令q 指向 b1结点 ' J& m2 [' p/ a7 c+ Q5 T
while (q->next)
$ C7 ?$ s- i, U, @2 Z" | q = q->next; // 查找 bn 结点 T; ^+ R/ y# k
q->next =(5)//将第 a1 结点链接到 bn 结点之后9 M& c X3 t) ]& l. [6 c
} // if(p)$ h/ n% F0 Q0 e- V
} // if(m)
+ u- I% c9 Q' w6 @8 Z3 \+ Y3 | } // exchange_L 9 g! V v( ^8 \, {* Y; U, N
9 p+ ^/ r# l, [( T" A
$ Q1 [1 k) m4 n7 T# L: `2 c c3 }9 g0 h6 _1 H+ ]) i. O( s* ]* A$ e
) Z% `% `9 W+ w. O" u
+ E1 U+ m- A) s; l* u% z
% S+ R! {* T6 G& m+ X1 x9 D) [1 w
* j$ h# u. x3 ~$ P+ V/ ]' H) V! |) v% h* G8 v5 d. k" u! a" F
3 g% ]7 m! ~6 A# b
4 j, |/ p; G+ o4 e& T) l. t( \1 I8 X/ B8 g6 q
32.一个仅包含二元运算符的算术表达式,以二叉链表形式存储在二叉树T中,设计算法F1实现求值,并指出遍历的方式。# U4 b& f3 p# r' }( H# r Z
8 m' ^! h/ {$ m- {; v' S. z
, f7 M! K# m# S2 b
, }8 n/ O% v; _
6 N+ h9 ^4 b m3 x9 H
% e! O3 v! h. o& l6 ^5 e+ ]5 M. S. Q' z& z
3 {% f( I7 d7 U3 O/ U2 {3 z, Q8 s4 Y8 Y
- o2 g2 T# ^; Z: m; J7 V9 i/ w; o1 t6 q. C3 T. }( _6 X/ {4 g. r
) v3 g0 ^0 k' |" U" r1 ?3 f) \" A& \
9 L! @! r, o) ^4 B. K# a+ Z: x' _9 b+ P2 m3 t1 H: e4 [
8 v$ x7 j" v) V
: ^: y. F& x/ ]5 C% B
& R6 X8 a$ f0 N2 V* L7 h$ N7 `33.设计算法实现以逆邻接表为存储结构的有向图的拓扑排序。, O4 p0 J2 w+ A: S" f& }* o
逆邻接表存储结构定义如下:3 s, D: I" k% a, _1 }
顶点结构 表结点结构
; e* @1 |4 b5 y; d) dvexdata firstin 5 l% a2 \# o- L6 j
adjvex nfo firstarc
4 j7 t7 @$ q" H r$ |) b# G" [3 L$ [4 D
; ^( k( Z( B/ }4 `
% i" O3 j) @0 H8 _/ O
5 _, G/ Q: l: q# H& P; i7 j# }& P! n: n) [* l2 K, j" ]
- x6 a* j; Z0 B0 Z) ~
$ [ K0 A( D3 g* y) q8 v/ S
7 Y4 j1 i5 o0 W, e: ]2 n9 o8 f3 X) W3 |0 l- K
) O+ t' [& Z, y3 I" T1 J
( ^6 K6 ~9 U; }. U7 [ r. u
" o3 U9 s0 k: N* X2 B; f, u h+ S+ N; \
( y; j2 |# F# y; L! E. T: ~- t9 ~7 C+ y
5 N* y* c- _8 j8 `% B+ X5 D34. 设哈希表长为13,采用线性探测法解决冲突,哈希函数定义为:H(key)=key%13。" s+ j# p/ L6 b' \0 h! q' C7 V
试求:(1)填上依次插入关键字25,20,36,15,41,52,29,72,67后的哈希表。
% [/ R$ q* q% W$ W4 ]4 e% `1 M(2)计算等概率情况下,查找成功的平均查找长度。; N. g+ F1 }' I$ |% D( B/ H
$ N6 K" l9 C( D& C5 x- O9 U) t, w: X8 R! H1 L
5 q9 Q) E# A3 y9 c1 [ k9 M7 b5 r( m$ {# R( [( z1 Q
5 ~7 H6 l9 k' p+ y `
- G- k5 V/ ?( D: N% P* ^8 |& t' b6 N3 X3 u/ H* \
' ?4 v- o$ h# X
2 U1 [. n5 r7 r
; M9 s" U0 g3 m* m; n$ Y# M0 d! U% d/ E) A8 \
' E$ Z x& Q! m$ m
4 R6 l1 i( X) T. O- K
3 ~( O# u5 E3 S+ e# P5 A9 }6 B
; S! W# B% j5 E# W% n
. h3 d0 {+ u, h& @; Q
" F5 e0 ?, Z$ A5 K' C, C$ I( B* u, i3 G8 b3 v
- }: O7 g8 g0 I7 F( ]& W7 X1 D7 W7 u7 m( L c A+ \ ?
|
|