数据结构综合练习题及答案.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构(一)
一、选择题
1.组成数据的基本单位是(C )。
(A)数据项(B)数据类型(C)数据元素(D)数据变最
2.设数据结构A=(D, R),其中D={1, 2, 3, 4}, R={r}, r={<l, 2>, <2, 3>, <3, 4>, <4, 1>},则数据结构
人是(C )o
(A)线性结构(B)树型结构(C)图型结构(D)集合
3、数组的逻辑结构不同于下列(D )的逻辑结构。
(A)线性表(B)栈(C)队列(D)树
4、二叉树中第i (i$l)层上的结点数最多有(C )个。
(A) 2i (B) 21(C) 2i_1(D) 2i-l
5、设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A )。
(A) p->next=p-〉next-〉next (B) p=p->next
(C) p二p->next->next (D) p->next=p
6、设栈S和队列Q的初始状态为空,元素El、E2、E3、E4、E5和E6依次通过栈S, —个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(C )。
(A) 6 (B) 4 (C) 3 (D) 2
7、将10阶对称矩阵压缩存储到一维数组A屮,则数组A的长度最少为(C )0
(A) 100 (B) 40 (C) 55 (D) 80
8、设结点A冇3个兄弟结点H.结点B为结点A的双亲结点,则结点B的度数数为(B )。
(A) 3 (B) 4 (0 5 (D) 1
9、根据二义树的定义可知二义树共有(B )种不同的形态。
(A) 4 (B) 5 (0 6 (D) 7
10、设有以下四种排序方法,则(B )的空间复杂度最人。
(A)冒泡排序(B)快速排序(C)堆排序(D)希尔排序
11、以下说法正确的是(A )
A.连通图的牛成树,是该连通图的一个极小连通子图。
B.无向图的邻接矩阵是对称的,有向图的邻接矩阵一定是不对称的。
C.任何一个有向图,其全部顶点可以排成一个拓扑序列。
0.有回路的图不能进行拓扑排序。
12、以下说法错误的是(D )
A.—般在哈夫曼树屮,权值越人的叶了离根结点越近
B.哈夫曼树中没有度数为1的分支结点
C.若初始森林中共有n裸二叉树,最终求得的哈夫曼树共有2n-l个结点
D.若初始森林中共冇n裸二叉树,进行2n-l次合并后才能剩下一棵授终的哈夫曼树
13、如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则
该图一定是(B)
A.完全图
B.连通图
C.有回路
D.—棵树
14、将一棵有50个结点的完全二叉树按层编号,则对编号为25的结点x,该结点(B )
A.无左、右孩了
B.有左孩了,无右孩了
C.有右孩了,无左孩了
D.有左、右孩了
15、深度为6的二叉树最多有(B )个结点
A. 64
B. 63
C. 32
D. 31
16、一个有序顺表有255个对彖,采用顺序搜索法查表,搜索长度为(A )o
A、128
B、127
C、126
D、255
17、在冇向图中每个顶点的度等于该顶点的(C )o
A.入度
B.出度
C.入度与出度之和
D.入度与出度之差
18、具有n个顶点的有向无坏图最多可包含(D )条有向边。
A. n-1
B. n
C. n(n-l)/2
D. n(n-l)
19、用邻接表作为有向图G的存储结构。
设有n个顶点、e条弧,则拓扑排序的时间复杂度为(B )
A. 0(n)
B. 0 (n+e)
C. 0(e)
D. 0(n*e)
20、一个有序顺表有255个对象,采用顺序搜索法查表,搜索长度为(A)。
A、128
B、127
C、126
D、255
21、在冇向图中,所冇顶点的入度Z和是所冇顶点出度之和的(B)倍。
A. 0.5
B. 1
C. 2
D.4
22、以下说法错误的是(B)
A.用相邻矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间人小只与图小结点个数有
关,而与图的边数无关。
B.邻接表法只能川于冇向图的存储,而相邻矩阵法对于冇向图和无向图的存储都适用。
C.存储无向图的相邻矩阵是对称的,因此只耍存储相邻矩阵的卜(或上)三角部分就可以了
D.用相邻矩阵A表示图,判定任意两个结点Vi和Vj Z间是否有长度为m的路径相连,则只耍检查A的第i 行第j列的元素是否为0即可。
23、在图的邻接表存储结构上执行深度优先搜索遍历类似于二叉树上的(A )
A.先根遍历
B.中根遍历
C.后根遍历D按层次遍历
24、在一个无向图中,所有顶点的度数之和等于所有边数的(B )倍。
A. 3
B. 2 C・ 1 D. 1/2
25、在无向图中,所冇顶点的度数Z和是所冇边数的(C )倍。
A. 0.5
B. 1
C.2
D.4
26、设有6个结点的无向图,该图至少应有(B)条边能确保是一个连通图。
A. 5
B. 6
C. 7
D. 8
27、以下说法正确的是(D )
A.连通分量是无向图中的极小连通了图。
B.强连通分最是有向图中的极人强连通子图。
C.在一个有向图的拓扑序列中,若顶点a在顶点b之而,则图中必有一条弧<a,b>o
D.对有向图G,如果从任意顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图。
二、填空题
1.设顺序循环队列Q[0:旷1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一
个位置,队尾指针R指向当前队尾元索所在的位宜,则出队列的语句为F = ______________ ;。
2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均吋间复杂度为 ________ ,在链式
存储结构上实现顺序查找的平均时间复杂度为 _________ o
3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构吋,该二叉链表中共有 ______ 个指针域,
_________ 个空指针域。
4.设指针变量p指向单链表小结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作
序列为_____________________________________ o
5.设无向图G中冇n个顶点和e条边,则其对应的邻接表中冇_______ 个表头结点和_________ 个表结点。
6.设无向图G屮有n个顶点e条边,所有顶点的度数之和为m,贝0 e和m有 _____ 关系。
7.设一•棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为 _______ 。
& 设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8 的双亲结点的编号是_____________ ,编号为8的左孩了结点的编号是 _____________ o
9.下列程序段的功能实现子串t在主串s屮位査的算法,要求在下划线处填上正确语句。
int index(char s[ ], char t[])
{
i=j=0;
while(i<strlen(s) && j<strlen(t)) if(s[i]==t[j]){i=i+l; j=j+l;}else{i= __________________ ; j= _______ ;} if (j==strlen(t))return(i-strlen(t)) ;else return (-1);
}
10.设一个连通图G中有n个顶点e条边,则其最小生成树上有_______ 条边。
三、应用题
1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、
中序和后序遍历序列。
2.设给定一个权值集合4(3, 5, 7, 9, 11),要求根据给定的权值集合构造一棵哈夫曼树并计算哈夫曼树的带权路
径长度WPLc
3.设一纟R初始记录关键字序列为仃9, 21, 16, 5, 18, 23),要求给出以19为基准的一-
趟快速排序结果以及第2趟直接选择排序后的结果。
4.设一组初始记录关键字集合为(25, 10, 8, 27, 32, 68),散列表的长度为7,散列函数
H(k)=k mod 7,要求用线性探测法作为解决冲突的方法设计哈希表。
5.设无向图G (所右图所示),耍求给岀该图的深度优先和广度优先遍历的序列,并画给
相应的生成树
(一)参考答案
二、填空题
1.(F+1) % m
2.0(n), 0(n)
3.2n, n+1
4.s->next=p->next; s-〉next=s
5.n, 2e
6.m=2e
7.CBA
8.4, 16
9.i-j+1, 0
10.n-1
三、应用题
1.链式存储结构略,询序ABDEC,中序DBEAC,后序DEBCA。
2.哈夫曼树略,WPL=78
3. (18, 5, 16, 19,21,23), (5, 16, 21, 19, 18, 23)
八—o 1 234567
4.线性探测:
A8 A1025322768
数据结构(二)
一、选择题
1 •卜•而关于线性表的叙述错误的是()o
(A)线性衣釆用顺序存储必须占用一片连续的存储空间
(B)线性表采用链式存储不必占用一片连续的存储空间
(0线性表采用链式存储便于插入和删除操作的实现
(D)线性表采用顺序存储便于插入和删除操作的实现
2.设哈夫曼树中的叶子结点总数为m,若用二义链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
(A) 2m-1 (B) 2m (C) 2m+l (D) 4m
3.设顺序循环队列Q[0:M-l]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针
R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M) %M
4.设某棵二义树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA
5.设某完全无向图中有n个顶点,贝0该完全无向图中有()条边。
(A) n(n~l)/2 (B) n(n~l) (C) n2(D) n2-l
6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()o
(A) 9 (B) 10 (C) 11 (D) 12
7.设某有向图中有n个顶点,则该有向图对应的邻接表屮有()个表头结点。
(A) n-1 (B) n (C) n+1 (D) 2rrl
8.设一组初始记录关键字序列(5, 2, 6, 3, 8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
(A) 2, 3, 5, 8, 6 (B) 3, 2, 5, 8, 6
(C) 3, 2, 5, 6, 8 (D) 2, 3, 6, 5, 8
二、填空题
1.为了能有效地应用HASH查找技术,必须解决的两个问题是 _____________________________________ 和
______________________________ O
2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。
typedef struct {int s[100]; int top;} sqstack;
void push (sqstack &stack, int x)
{
if (stack. top~m-l) printf ( "overflow");
else { _______________________ ; ___________________ ;}
}
3.中序遍历二叉排序树所得到的序列是__________ 序列(填冇序或无序)。
4.快速排序的最坏时间复杂度为__________ ,平均时间复杂度为__________ o
5.设某棵二义树中度数为0的结点数为N。
,度数为1的结点数为N B则该二叉树中度数为2的结点数为
________ ;若采用二义链表作为该二义树的存储结构,则该二义树中共有_______ 个空指针域。
6.设某无向图小顶点数和边数分别为n和e,所有顶点的度数之和为d,则e= ___________ 。
7.设一组初始记录关键字序列为(55, 63, 44, 38, 75, 80, 31, 56),则利用筛选法建立的初始堆为
8、简单选择排序、快速排序和堆排序是不稳定的排序方法,试举例说明。
9、给出下图邻接矩阵和邻接表两种存储结构;写岀图的拓扑序列。
(二)参考答案
一、选择题
1. D
2. B
3.C
4. A
5. A
6. C
7. B &C
二、填空题
1.构造一个好的HASH函数,确定解决冲突的方法
2.st ack. top++, stack, s [stack. top]=x
3.有序
4.0 (n2), O(nlog2n)
5.No-1, 2N0+Ni
6.d/2
7.(31, 38, 54, 56, 75, 80, 55, 63)
& (1, 3, 4, 2), (1, 3, 2, 4)
三、应用题
1.(20, 40, 45, 47, 80, 78), (40, 45, 47, 80, 20, 78)
2.q->llink=p; q->rlink=p->rlink; p->rlink->Ilink二q; p->rlink=q;
3.2, ASL=91*l+2*2+3*4+4*2)二25/9
4.树的链式存储结构略,二义树略
5.E={(1, 3), (1, 2), (3, 5), (5, 6), (6, 4)}
6.略
8.简单选择排序、快速排序和堆排序是不稳定的排序方法,试举例说明。
【解答】
(2)简单选择排序{ 275 275* 512 061 } i= 1
{061275* 512 275 } i = 2
{ 061275*512 275 } i = 3
{061275*275 512 }
(3)快速排序{512 275 275*}
{ 275* 275 512}
{ 275 275* 061 170 }已经是最大堆,交换275与170 (4)堆排序
{ 170 275* 061 275 }对前3个调整
{ 275* 170 061 275 }前3个最大堆,交换275*与061
{061 170 275*275 }对前2个调整
{ 170 061 275*275 }前2个最人堆,交换170与061
{061 170275*275 }
数据结构(三)
一、选择题
1.设某无向图有n个顶点,则该无向图的邻接表中有()个表头结点。
(A) 2n (B) n (C) n/2 (D) n(n-l)
2.设无向图G屮有n个顶点,贝J该无向图的最小生成树上有()条边。
(A) n (B) n—l (C) 2n (D) 2n—1
3.设一组初始记录关键字序列为(60, 80, 55, 40, 42, 85),则以第一个关键字45为基准而得到的一趟快速排序
结果是()。
(A) 40, 42, 60, 55, 80, 85 (B) 42, 45, 55, 60, 85, 80
(C) 42, 40, 55, 60, 80, 85 (D) 42, 40, 60, 85, 55, 80
4.()二叉排序树可以得到一个从小到人的有序序列。
(A)先序遍历(B)屮序遍历(C)后序遍历(D)层次遍历
5.设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩了结点的编
号为()o
(A) 2i+l (B) 2i (C) i/2 (D) 2i-l
6.程序段s=i=0; do {i=i+l; s=s+i; }while(i<=n);的时间复杂度为()。
(A) 0(n) (B) 0(nlog2n) (C) 0(n") (D) 0(n72)
7.设带冇头结点的单向循环链表的头指针变量为head,则其判空条件是()。
(A) head==0 (B) head->next==0
(C) hcad->next==head (D) head!二0
8.设某棵二叉树的高度为10,则该二义树上叶子结点最多有()。
(A) 20 (B) 256 (C) 512 (D) 1024
9•设一组初始记录关键字序列为(13, 18, 24, 35, 47, 50, 62, 83, 90, 115, 134),则利用二分法查找关键字90需耍比佼的关键字个数为()。
(A) 1 (B) 2 (0 3 (D) 4
10.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。
(C) top >next=top; (D) top=top->next;
(A) top=top+l; (B) top=top-l;
二、判断题
1、数据的最小单位是数据项。
(V)
2、多重表文件中主索引为非稠密索引,次索引为稠密索引。
.... .(V )
3、通常数据结构在计算机中冇四种不同的表示方法分为顺序存储结构、链式存储结构、索引存储、文件存储。
..... ・……・(X )
4、算法具有输入、输出、可行性、稳定性、有穷性五个特性。
.......... (X )
5、数据的基本单位是数据项。
................... (X )
6、算法的复杂度分为时间复杂度和效率复杂度。
...... .(X )
7、性质相同的数据元素的集合成为数据対象。
........ (V )
8、所有结点按1对1的邻接关系构成的整体就是集合结构。
..... ・(X )
9、散列文件不能顺序存取、只能按关键字随机存取。
........ • ( V )
10、 ............................................ 数据的基本单位是数据元素。
(V )
11、不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。
(V )
12、当向二叉排序树中插入一个结点,则该结点一定成为叶了结点。
(J )
13.由树转化成二叉树,该二叉树的右了树不一定为空。
(X )
14.线性表小的所有元素都有-•个前驱元素和后继元素。
(X )
15.带权无向图的最小生成树是唯一的。
(X )
16.具有12个结点的完全二叉树有5个度为2的结点。
()
17.关键路径是事件结点网络中的从源点到汇点的最短路径。
()
18.Ill树转化成二义树,该二义树的右子树不一定为空。
()
19.堆排序是不稳定的排序方法。
(V )
20.查找表是由同一类型的数据元素(或记录)构成的集合(V)三、填空题
1.设指针变量P指向双向链表中的结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X
的操作序列为_______ 二P; s->right=p->right;___________ 二s; p->right->left=s;(设结点中的两个指针域分别为left和right)o
2.设完全有向图屮有n个顶点,则该完全有向图屮共有_______ 条有向条;设完全无向图中有n个顶点,则
该完全无向图中共有______ 条无向边。
3.设关键字序列为(K“ K2,…,KJ,则用筛选法建初始堆必须从第_______ 个元素开始进行筛选。
4.解决散列表冲突的两种方法是 ______________ 和_________________ o
5.设一棵三义树中有50个度数为0的结点,21个度数为2的结点,则该二义树中度数为3的结点数有_____
个。
6.高度为h的完全二叉树屮最少有_______ 个结点,最多有_______ 个结点。
7.设有一组初始关键字序列为(24, 35, 12, 27, 18, 26),则第3趟直接插入排序结束后的结果的是8.设有一组初始关键字序列为(24, 35, 12, 27, 18, 26),则第3趟简单选择排序结束后的结果的是
9.设一棵二叉树的前序序列为ABC,则有 _____________ 种不同的二叉树可以得到这种序列。
10.卞血程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。
struct record {int key;datatype others;};
void quickpass(struct record r[], int s, int t, int &i)
{
int j=t; struct record x=r[s]; i=s;
while (i<j)
{
while (i〈j && r[j]. key>x. key) j=j-l; if (i<j) {r[i]=r[j];i=i+l;}
while ( ________________________ ) i二i+1; if (i<j) {r[j]=r[i];j=j-l;}
}
数据结构(三)
一、选择题
1. B
2. B
3. C
4. B
5. B
6. A
7. C
8. C
9. B 10. D
三、填空题
1.s~>left二p, p->right
2.n(n-l), n(n-l)/2
3.n/2
4.开放定址法,链地址法
5.14
6.2h_1, 2-1
7.
(12, 24, 35, 27, 18, 26) 8.
(12, 18, 24, 27, 35, 26) 9. 5
10. i<j && r[i]. key<x.key, r[i]=x
数据结构(四)
一、选择题
1. 设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第 素是(c )□
(A) n-i (B) n-l-i (C) n+l-i (D)不能确定
2. 为査找某一特定单词在文本中出现的位置,可应用的串运算是()
A.插入
B.删除
C.串联接
D.子串定位 3. 设有序表中有1000个元素,则用二分查找查找元素X 最多需要比较()次。
(A) 25 (B) 10 (C) 7 (D) 1
4. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为() A.顺序表 C.用尾指针表示的单循环链表
设某完全无向图中冇n 个顶点, (A) n(n-l)/2 (B) n(n-l)
A. 0 3 2 1
B. 0 12 3
C. 0 13 2
D. 0 3 12 9.若进栈序列为a, b, c, d, e,则栈的不可能的输出序列是
()
A. edcba
B. dceab
C. decba
D. abcde
10. 把一棵树转换为二叉树后,这棵二叉树的形态是()o A.唯一的 B.有多种
C.有多种,但根结点都没有左孩子
D.有多种,但根结点都没有右孩子
11. 为查找某一特定单词在文本中出现的位置,可应用的串运算是()
A.插入
B.删除
C.串联接
D.子串定位
12. ALV 树是一种平衡的二叉树,树中任一结点的()
A ・左、右子树的高度均相同
B.左、右子树高度差的绝对值不超过1
C.左子树的髙度均大于右子树的高度
D.左子树的高度均小于右子树的高度 13. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()
个输岀元 B.用头指针表示的单循环链表
D.单链表 则该完全无向图中冇()条边。
(0 n2 (D) n2-l
5. 设某棵二义树中有2000个结点,则该二义树的最小髙度为()。
(A) 9 (B) 10 (C) 11 (D) 12
在数据结构中,从逻辑上可以把数据结构分为()
A.动态结构和静态结构
C.内部结构和外部结构 8.己知图的邻接表如下所示, 6. 7. B.紧凑结构和非紧凑结构
D.线性结构和非线性结构
根据算法,则从顶点V 。
出发按广度优先遍历的结点序列是()
A.顺序表
C.用尾指针表示的单循环链表
14. 二叉树是非线性数据结构,所以( A. 它不能用顺序存储结构存储; B. 用头指针表示的单循环链表 D.单链表 )。
B.它不能用链式存储结构存储;
C.顺序存储结构和链式存储结构都能存储;
D.顺序存储结构和链式存储结构都不能使用
15.用邻接表表示图进行广度优先遍历时,通常是采用()来实现算法的。
16. 数据的最小单位是()。
(A)数据项(B)数据类型 (C)数据元素 (D)数据变量
17. 设某棵二叉树中有2000个结点,则该二叉树的最小高度为()o
(A) 9 (B) 10 (C) 11 (D) 12
18. 函数 substr ( "DATASTRUCTURE”,5, 9)的返回值为()。
19.
设某完全无向图中冇n 个顶点,则该完全无向图中冇( (A) n (n-l)/2
(B) n (n-1) (C) n2 (D) n2-l 20. 深度为k 的完全二义树中最少有()个结点。
(A) 2k_1-l (B) 2k_, (C) 201
(D) 2k -l 21. 设连通图 G 中的边集 E={(a, b), (a, e), (a, c), (b, e), (e, d), (d, f), (f, c)},则从顶点 a 出发 可以得到一种深度优先遍历的顶点序列为()。
(A) abedfc (B) acfebd (C) aebdfc
(D) aedfcb
22. 下面关于线性表的叙述错误的是()。
(A) 线性表采用顺序存储必须占用一片连续的存储空间
(B) 线性表采用链式存储不必占用一片连续的存储空间 (0线性表采用链式存储便于插入和删除操作的实现
(0)线性表采用顺序存储便于插入和删除操作的实现
23. 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针 域。
(A) 2m-1 (B) 2m (C) 2m+l (D) 4m
24. 设顺序循环队列Q[0: M-1]的头指针和尾指针分别为F 和R,头指针F 总是指向队头元素的前一位置,尾指 针R 总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
(A) R-F (B) F-R (C) (R-F+M)
(D) (F-R+M) %M 25. 设某棵二义树的中序遍历序列为ABCD,询序遍历序列为CABD,则后序遍历该二义树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA
二、填空题
1. 1. for (i=l, t 二 1, s 二0; i<=n ; i++) {t=t*i ; s 二s+t ; }的吋间复杂度为 _
2. 下面程序段的功能是实现冒泡排序算法,请在下划线处填上止确的语旬。
void bubble(int r[n])
{
for (i=l;i<=n~l; i++)
{
for (exchange 二0, j 二0; j< ____ ;j++)
if (r[j]>r[j+l]) {temp=r[j+l]; ___________ ;r[j] =temp;exchange=l;}
if (exchange==O) return ;
}
}
3. 下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。
struct record{int key; int others;};
i nt bi search(struct record r[ ], int k)
{
int low=0, mid, high 二nT ;
while (low<=high)
if (r[mid]. key=k) return(mid+1);
(A) “STRUCTURE” (B) “DATA”
(C) “ASTRUCTUR”
(D) “DATASTRUCTURE” )条边。
else if ( _______ ) high=mid-l:else low二mid+1;
}
return(0);
}
3.根据二义树的定义可知二义树共有________ 种不同的形态。
4.快速排序的最坏时间复杂度为______ ,平均时间复杂度为 ______ o
5.设菜棵二叉树屮度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树屮度数为2的结点数为______ : 若采用二义链表作为该二叉树的存储结构,则该二叉树中共有 _____ 个空指针域。
6.设某无向图中顶点数和边数分别为n和e,所有顶点的度数Z和为d,则e二________ 。
7.设一棵完全二叉树屮有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是__________ ,编号为8的左孩子结点的编号是_____________ o
8.设一个连通图G中有n个顶点e条边,则其最小生成树上有_______ 条边。
9.设一组初始记录关键字序列为(55, 63, 44, 38, 75, 80, 31, 56),则利用筛选法建立的初始堆为__________ 。
10.设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_______ o
三、判断题
1•调用一次深度优先遍历可以访问到图中的所有顶点。
(X )
2.分块査找的平均查找长度不仅与索引表的长度冇关,而且与块的长度冇关。
(V )
3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
(V )
4.满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
(V )
5.设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。
(X )
6.设某堆屮有n个结点,则在该堆屮插入一个新结点的时间复杂度为0(log2n)o ( V )
7.完全二叉树中的叶子结点只可能在最后两层中出现。
(丁 )
8.哈夫曼树中没有度数为1的结点。
(V )
9.对连通图进行深度优先遍历可以访问到该图中的所冇顶点。
(V )
10・先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。
(丿)
四、应用题
1.对如下所示的带权图:
1)分别按照克鲁斯卡尔算法和普里姆算法,从顶点vl出发,生成最小生成树,按生成次序依次写出各条边; (2)画出该图最小生成树,并求出它的权值。
2.设给定权集W={5, 7, 2, 3, 6, 8,10},请构造画出关于W的一棵赫夫曼树,并求出其加权路径长度WPL0
3.己知一棵二义树的先序序列是ABCDEFG111JK,中序序列是CDBGFEAI1J1K,请构造出该二义树。
4.设有一组初始记录关键字为(45, 80, 47, 40, 22, 68),要求构造一棵二叉排序树并给出构造过程;画出删除45后的二叉排序树。
5.已知散列函数为H(key)=key mod 7,散列表长度为7(散列地址空间为0……6),待散列序列关键字依次为:(25, 50,
32, 55, 68)。
要求
(1)根据以上条件构造一•散列表,并用“线性探测再散列法”解决有关地址冲突(要求写出构造过程);
(2)若要用该散列表查找元素68,试给出所需的比较次数和依次被比较的关键字。
6、(1)求树三棵树的先根序列和后根序列;
(2)求森林先序序列和中序序列;
(3)把森林转换为对应的二义树。
(C )
7、把下而的二叉树转换为相应的森林。
严亠、
/ 、
( \
\ B )
五、算法设计题
1.假设正读和反读都相同的字符序列为“回文”,例如,'abba'和'abcba'是回文,'abcde'和<ababab, 则不是回文。
试写一个算法判別读入的一个以为结束符的字符序列是否是“回文”。
2.试写一•个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链衣作存储结构。
且树中结点的关键字均不同。
3.编写按层次顺序(同一层自左至右)遍历二叉树的算法。
(6分)
4.编写递归算法,计算二叉树屮叶了结点的数目。
5.设有一•组初始记录关键字序列(K】,金,・・・,KQ,要求设计一个算法能够在0(n)的吋间复朵度内将线性表划分成两部分,其屮左半部分的每个关键字均小于K,右半部分的每个关键字均人于等于治。
Vj - > 3- > 2- > 4
P— > [ —〉3
8.设某无向图G的邻接表为* 1 2 3 4 5 6 7 ________________ ,则从
顶点V】开始的深度优先遍历序列为?广度
v3 - > 1->4- > 2
卩4 - > 1一> 3
优先遍历序列为__________ O
三、应用题
1. 设一组初始记录关键字序列为(45, 80, 47, 40, 20, 78),则分别给出第4趟简单选择排序和第4趟直接插入排
序后的结果。
2. 设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B 的
操作序列(设双向链表中结点的两个指针域分别为llink和rlink)o
3. 设一组冇序的记录关键字序列为(13, 18, 24, 35, 47, 50, 62, 83, 90),查找方法用二分査找,要求计算出杳
找关键字62时的比较次数并计算岀查找成功时的平均杏找长度。
4. 设一棵树T 中边的集合为{(A, B), (A, C), (A, D), (B, E), (C, F) , (C, G)}, 耍求用孩子兄弟表示法(二叉链
表)表示出该树的存储结构并将该树转化成对应的二义树。
5. 设有无向图G (如右图所示),要求给出用普里姆算法构造最小生成树所走过的边的集合。
6. 设有一组初始记录关键字为(45, 80, 48, 40, 22, 78),要求构造一棵二叉排序树并给出构造过程。
7. 给出如图所示的无向图G的邻接矩阵和邻接表两种存储结构。