《数据结构与算法》第7章 查找_复习测试

合集下载

数据结构-期末复习题及参考答案+-+第7章图

数据结构-期末复习题及参考答案+-+第7章图

《数据结构》期末复习题及参考答案- 第7章图//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 注意:做复习题时,请结合阅读教材,钻研教材,参考课件////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////一、选择题1、以下数据结构中,哪种具有非线性结构?A.栈B.队列C.双向链表D.十字链表2、下面关于图的存储的叙述中正确的是()。

A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关。

B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关。

C.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关。

D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关3、在图的邻接表存储结构上执行深度优先搜索遍历类似于二叉树上的()A.先根遍历B.中根遍历C.后根遍历D.按层次遍历4、图的广度优先遍历算法类似于树的()。

A. 中根遍历B. 先根遍历C. 后根遍历D. 按层次遍历5、设无向图的顶点个数为n,则该图最多有()条边。

A.n-1 B.n(n-1)/2 C.n(n+1)/2 D.06、设有n个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.n-1 B.n C.n+1 D.nlogn;7、一个含有n个顶点的非连通图,则():A.它的边一定不大于n-1 B.它的边一定不大于nC.它的边一定小于n-1 D.它的边一定大于08、要连通具有n个顶点的有向图,至少需要()条边。

数据结构第七章习题答案

数据结构第七章习题答案

第七章图
1.下面是一个图的邻接表结构,画出此图,并根据此存储结构和深度优先搜索算法写出从C开始的深度优先搜索序列。

1
2
3
4
5
【解答】
A B F
C D E
C开始的深度优先搜索序列:CDEABF(唯一的结果)
2.假定要在某县所辖六个镇(含县城)之间修公路,若镇I和镇J 之间有可能通过道路连接,则Wij表示这条路的长度。

要求每个镇都通公路且所修公路总里程最短,那么应选择哪些线路来修。

(1).画出该图。

(2).用C语言描述该图的数组表示法存储结构,并注明你所使用变量
的实际含义。

(3).图示你所定义的数据结构。

(4).标识出你选择的线路。

【解答】 (1)
(2)
#define MAX 6 typedef struct {
char vexs[MAX]; // 顶点信息 int arcs[MAX][MAX]; // 边的信息
int vexnum, arcnum; // 顶点数,边数 } MGraph; (3)略
(4){(1,3), (3,4), (2,4), (4,5), (5,6)}
3.图G 如下所示。

(1).给出该图的所有强连通分量。

(2).在图中删除弧<2,1>,然后写出从顶点1开始的拓扑有序序列。

5
4
6
1
3
2
4
15 10
2
15
20
30
4
10
10
【解答】
(1) 共4个强连通分量:
(2) 1,3,2,6,5,4。

数据结构第七章参考答案

数据结构第七章参考答案

习题71.填空题(1)由10000个结点构成的二叉排序树,在等概率查找的条件下,查找成功时的平均查找长度的最大值可能达到(___________)。

答案:5000.5(2)长度为11的有序序列:1,12,13,24,35,36,47,58,59,69,71进行等概率查找,如果采用顺序查找,则平均查找长度为(___________),如果采用二分查找,则平均查找长度为(___________),如果采用哈希查找,哈希表长为15,哈希函数为H(key)=key%13,采用线性探测解决地址冲突,即d i=(H(key)+i)%15,则平均查找长度为(保留1位小数)(___________)。

答案:6,3,1.6(3)在折半查找中,查找终止的条件为(___________)。

答案:找到匹配元素或者low>high?(4)某索引顺序表共有元素275个,平均分成5块。

若先对索引表采用顺序查找,再对块元素进行顺序查找,则等概率情况下,分块查找成功的平均查找长度是(___________)。

答案:31(5)高度为8的平衡二叉树的结点数至少是(___________)。

答案: 54 计算公式:F(n)=F(n-1)+F(n-2)+1(6)对于这个序列{25,43,62,31,48,56},采用的散列函数为H(k)=k%7,则元素48的同义词是(___________)。

答案:62(7)在各种查找方法中,平均查找长度与结点个数无关的查找方法是(___________)。

答案:散列查找(8)一个按元素值排好的顺序表(长度大于2),分别用顺序查找和折半查找与给定值相等的元素,平均比较次数分别是s和b,在查找成功的情况下,s和b的关系是(___________);在查找不成功的情况下,s和b的关系是(___________)。

答案:(1)(2s-1)b=2s([log2(2s-1)]+1)-2[log2(2s-1)]+1+1(2)分两种情况考虑,见解答。

数据结构与算法课程第7章的习题答案

数据结构与算法课程第7章的习题答案
if (loc==-1)printf("No find!\n");
else printf("Find success, location is: %d\n", loc+1);}
7.4
count+=JieChen(i+j)/(JieChen(i)*JieChen(j));
//
for (j=0; jv=N/2; j++) {//对每一种组合再算组合
if (s==9) printf("i=%d, j=%d, k=%d\n", i, j, k);
}
}
7.2 Armstrong
333
153=15 3
4444
1634=1 63 4
找出
枚举法:首先判断
【代码】
#include vstdio.h>
int digitLen(long m);//求整数m的位数
mid=(low+high)/2;
if (x>a[mid]) return find(a, x, mid+1,high);
else if (x<a[mid]) return find(a, x, low, mid-1);
else//即x==a[mid] return mid;
}
void main(){
7.1
的比例,试求出所有满足条件的三个三位数。例如:三个三位数
件。
分析:


置数组
最后,如果
【代码】
#include vstdio.h>
void main() {
int i, j, k, h, s;

数据结构第七章的习题答案

数据结构第七章的习题答案

数据结构第七章的习题答案数据结构第七章的习题答案数据结构是计算机科学中非常重要的一门学科,它研究如何组织和管理数据以便高效地访问和操作。

第七章是数据结构课程中的一个关键章节,它涵盖了树和二叉树这两个重要的数据结构。

本文将为读者提供第七章习题的详细解答,帮助读者更好地理解和掌握这些概念。

1. 问题:给定一个二叉树,如何判断它是否是二叉搜索树?解答:要判断一个二叉树是否是二叉搜索树,我们可以使用中序遍历的方法。

中序遍历会按照从小到大的顺序访问二叉树中的节点。

所以,如果一个二叉树是二叉搜索树,那么它的中序遍历结果应该是一个有序的序列。

具体实现时,我们可以使用递归或者迭代的方式进行中序遍历,并将遍历的结果保存在一个数组中。

然后,我们检查这个数组是否是有序的即可判断二叉树是否是二叉搜索树。

2. 问题:给定一个二叉树,如何找到它的最大深度?解答:要找到一个二叉树的最大深度,我们可以使用递归的方式。

对于每个节点,它的最大深度等于其左子树和右子树中的最大深度加1。

递归的终止条件是节点为空,此时深度为0。

具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的最大深度。

在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的最大深度,然后取两者中的较大值加1作为当前节点的最大深度。

3. 问题:给定一个二叉树,如何判断它是否是平衡二叉树?解答:要判断一个二叉树是否是平衡二叉树,我们可以使用递归的方式。

对于每个节点,我们分别计算其左子树和右子树的高度差,如果高度差大于1,则该二叉树不是平衡二叉树。

具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的高度。

在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的高度,然后取两者中的较大值加1作为当前节点的高度。

最后,我们判断左子树和右子树的高度差是否大于1,如果大于1,则该二叉树不是平衡二叉树。

《数据结构与实训(第4版)(微课版)》 -第7章习题参考答案[3页]

《数据结构与实训(第4版)(微课版)》 -第7章习题参考答案[3页]

第七章习题答案1.填空题(1) 平均查找长度(2) 哈希查找(3)顺序 有序(4)越大(5) 21(n + 1) (6)开放定址法 拉链法(7)3(8)2(9)中序(10)建表2.判断题(1)×(2)×(3)√(4)√(5)√(6)√(7)√(8)√(9)×(10)×3.简答题(1)①表中只有一个关键字等于给定值k 的记录,无序表、有序表:顺序查找成功时,平均查找长度均为1/(n)*(1+2+…+n)=(n+1)/2;两者相同。

②无序表:顺序查找不成功时,平均查找长度为n+1;有序表,平均查找长度为1/(n+1)*(1+2+…+(n+1))=(n+2)/2;两者不相同。

③表中只有m 个关键字等于给定值k 的记录,无序表:ASL=n+1;有序表:ASL=(n+1)/2+m ;两者不相同。

(2)(3H(22)=(22 mod 7)+1=2 H(8)=(8 mod 7)+1=2 H(34)=(34 mod 7)+1=7 H(19)=(19 mod 7)+1=6 H(21)=(21 mod 7)+1=1 H(29)=(29 mod 7)+1=2 ①0 1 2 3 4 5 6 7 8②1 2 3 4 5 6 7 8 ③4.(1)int SeqSearch(RecordType r, int n, KeyType k){ i=0;r[n].key=k;while (r[i].key!=k) i++;if (i<n) return n;else return -1;}(2)KeyType MaxNode (BSTree bt){ if (bt!=NULL){ f=bt;while (bt->rchild!=NULL){ f=bt; bt=bt->rchild;}return f->key;}}(3)int level(BSTree bt, KeyType k){ d=0;if (bt==NULL) return 0; //空树深度为0else{ d++; //根结点深度为1while (bt->data!=k){ if (bt->data<k) bt=bt->rchild; //右子树中查找else bt=bt->rchild; //左子树中查找d++;}return d;}(4)#define N 50int IsBSTree(BSTree bt){BSNode *stack[N],*p;KeyType k;int isbst,top;isbst=1; //标志变量,首先假定bt是二叉排序树top=-1; //置空栈p=bt; //p从根出发while (isbst && (p!=NULL || top!=-1)){while ((p!=NULL){k=p->key;if (p->lchild->key>k || p->rchild->key<k){ isbst=0; break;}if (p->rchild!=NULL)stack[++top]=p->rchild;p=p->lchild;}if (top!=-1)p=stack[top--];}return isbst;}(5)BSTree BSTDeleteAll(BSTree t, KeyType k){BSTree p;p=BSTSearch1(t,k); //查找关键字值不小于x的结点while (p!=NULL){ t=BSTDelete(t,p); //删除p所指示结点p=BSTSearch1(t,k);}}注:函数BSTSearch1,BSTDelete参阅教材§7.3.3,§7.3.4。

数据结构与算法分析 第7章 答案 Larry Nyhoff 清华大学出版社

数据结构与算法分析 第7章 答案  Larry Nyhoff 清华大学出版社

– 46 –
Chapter 7
//Definition of bottom(): StackElement bottom(Stack s) { if (!s.empty()) [ StackElement value; while (!s.empty()) { value = s.top(); s.pop(); } return value;
– 47 –
Chapter 7
9.
StackElement nthElement(int n); /*---------------------------------------------------------------------Retrieve the n-th element of this stack. Precondition: 1 <= n <= number of stack elements Postcondition: n-th element of the stack is returned, unless stack has fewer than n elements, in which case an error message is displayed. ----------------------------------------------------------------------* //Definition of nthElement() StackElement Stack::nthElement(int n) { if (n <= myTop + 1) return myArray[myTop + 1 - n]; //else cerr << "Stack has no " << n << "-th element" " -- returning a garbage value\n"; StackElement garbage; return garbage; }

数据结构第七章考试题库(含答案)

数据结构第七章考试题库(含答案)

第七章图一、选择题1.图中有关路径的定义是〔〕.[北方交通大学 2001 一、24 〔2分〕] A.由顶点和相邻顶点序偶构成的边所形成的序列 B.由不同顶点所形成的序列C.由不同边所形成的序列 D.上述定义都不是2.设无向图的顶点个数为n,则该图最多有〔〕条边.A.n-1 B.n<n-1>/2 C. n<n+1>/2 D.0 E.n2[清华大学 1998 一、5 〔2分〕][西安电子科技大 1998 一、6 〔2分〕][航空航天大学 1999 一、7 〔2分〕]3.一个n个顶点的连通无向图,其边的个数至少为〔〕.[##大学 1999 四、4 <4分>] A.n-1 B.n C.n+1 D.nlogn;4.要连通具有n个顶点的有向图,至少需要〔〕条边.[航空航天大学 2000 一、6<2分〕] A.n-l B.n C.n+l D.2n5.n个结点的完全有向图含有边的数目〔〕.[中山大学 1998 二、9 〔2分〕] A.n*n B.n〔n+1〕 C.n/2 D.n*〔n-l〕6.一个有n个结点的图,最少有〔〕个连通分量,最多有〔〕个连通分量.A.0 B.1 C.n-1 D.n[邮电大学 2000 二、5 〔20/8分〕]7.在一个无向图中,所有顶点的度数之和等于所有边数〔〕倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的〔〕倍.[哈尔滨工业大学 2001 二、3 〔2分〕] A.1/2 B.2 C.1 D.48.用有向无环图描述表达式<A+B>*〔〔A+B〕/A〕,至少需要顶点的数目为< >.[中山大学1999一、14]A.5 B.6 C.8 D.99.用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是< >.A.逆拓扑有序 B.拓扑有序 C.无序的 [中科院软件所1998]10.下面结构中最适于表示稀疏无向图的是〔〕,适于表示稀疏有向图的是〔〕.A.邻接矩阵 B.逆邻接表 C.邻接多重表 D.十字链表 E.邻接表[工业大学 2001 一、3 <2分>]11.下列哪一种图的邻接矩阵是对称矩阵?〔〕[北方交通大学 2001 一、11 〔2分〕] A.有向图 B.无向图 C.AOV网 D.AOE网12.从邻接阵矩可以看出,该图共有〔①〕个顶点;如果是有向图该图共有〔②〕条弧;如果是无向图,则共有〔③〕条边.[中科院软件所 1999 六、2〔3分〕]①.A.9 B.3 C.6 D.1 E.以上答案均不正确②.A.5 B.4 C.3 D.2 E.以上答案均不正确③.A.5 B.4 C.3 D.2 E.以上答案均不正确13.当一个有N个顶点的图用邻接矩阵A表示时,顶点Vi的度是〔〕.[南京理工大学1998一、4<2分〕]A. B. C. D.+14.用相邻矩阵A表示图,判定任意两个顶点Vi和Vj之间是否有长度为m 的路径相连,则只要检查〔〕的第i行第j列的元素是否为零即可.[武汉大学 2000 二、7] A.mA B.A C.A m D.Am-115. 下列说法不正确的是〔〕.[青岛大学 2002 二、9 〔2分〕]A.图的遍历是从给定的源点出发每一个顶点仅被访问一次 C.图的深度遍历不适用于有向图B.遍历的基本算法有两种:深度遍历和广度遍历 D.图的深度遍历是一个递归过程16.无向图G=<V,E>,其中:V={a,b,c,d,e,f},E={<a,b>,<a,e>,<a,c>,<b,e>,<c,f>,<f,d>,<e,d>},对该图进行深度优先遍历,得到的顶点序列正确的是〔〕.[南京理工大学 2001 一、14 〔1.5分〕] A.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f,d D.a,e,d,f,c,b 17. 设图如右所示,在下面的5个序列中,符合深度优先遍历的序列有多少?〔〕[南京理工大学 2000 一、20 〔1.5分〕]a eb d fc a c fde b a e df c b a e f d c b a e f d b cA.5个 B.4个 C.3个 D.2个第17题图第18题图18.下图中给出由7个顶点组成的无向图.从顶点1出发,对它进行深度优先遍历得到的序列是< ① >,而进行广度优先遍历得到的顶点序列是〔②〕.[中科院软件所 1999 六、2-〔1〕〔2分〕]①.A.1354267 B.1347652 C.1534276 D.1247653 E.以上答案均不正确②.A.1534267 B.1726453 C.l354276 D.1247653 E.以上答案均不正确19.下面哪一方法可以判断出一个有向图是否有环〔回路〕:[东北大学 2000 4、2〔4分〕] A.深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径20. 在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为< >.A. O<n>B. O<n+e>C. O<n2>D. O<n3>[合肥工业大学 2001 一、2 〔2分〕]21. 下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为〔 1 〕,下面步骤重复n-1次: a:〔 2 〕;b:〔 3 〕;最后:〔 4 〕.[南京理工大学 1997 一、11_14 〔8分〕]〔1〕.A.VT,ET为空 B.VT为所有顶点,ET为空C.VT为网中任意一点,ET为空 D.VT为空,ET为网中所有边〔2〕.A. 选i属于VT,j不属于VT,且〔i,j〕上的权最小B.选i属于VT,j不属于VT,且〔i,j〕上的权最大C.选i不属于VT,j不属于VT,且〔i,j〕上的权最小D.选i不属于VT,j不属于VT,且〔i,j〕上的权最大〔3〕.A.顶点i加入VT,〔i,j〕加入ET B. 顶点j加入VT,〔i,j〕加入ET C. 顶点j加入VT,〔i,j〕从ET中删去 D.顶点i,j加入VT,〔i,j〕加入ET〔4〕.A.ET 中为最小生成树 B.不在ET中的边构成最小生成树 C.ET中有n-1条边时为生成树,否则无解 D.ET中无回路时,为生成树,否则无解22. <1>. 求从指定源点到其余各顶点的迪杰斯特拉〔Dijkstra〕最短路径算法中弧上权不能为负的原因是在实际应用中无意义;<2>. 利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O<n3> ;〔图用邻接矩阵表示〕<3>. Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路.上面不正确的是〔〕.[南京理工大学 2000 一、21 〔1.5分〕]A.<1>,<2>,<3> B.<1> C.<1>,<3> D.<2>,<3>23.当各边上的权值< >时,BFS算法可用来解决单源最短路径问题.[中科院计算所2000一、3 <2分〕]A.均相等 B.均互不相等 C.不一定相等24. 求解最短路径的Floyd算法的时间复杂度为< >.[合肥工业大学 1999 一、2 〔2分〕]A.O〔n〕 B. O〔n+c〕 C. O〔n*n〕 D. O〔n*n*n〕25.已知有向图G=<V,E>,其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是〔〕.A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7[航空航天大学 2000 一、7 〔2分〕]26.若一个有向图的邻接距阵中,主对角线以下的元素均为零,则该图的拓扑有序序列〔〕.A.存在 B.不存在[中科院计算所1998 二、6 <2分〕][中国科技大学 1998二、6〔2分〕]27.一个有向无环图的拓扑排序序列〔〕是唯一的.[邮电大学 2001 一、3 〔2分〕] A.一定 B.不一定28. 在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是〔〕.A.G中有弧<Vi,Vj> B.G中有一条从Vi到Vj的路径C.G中没有弧<Vi,Vj> D.G中有一条从Vj到Vi的路径[南京理工大学 2000 一、9 〔1.5分〕]29. 在用邻接表表示图时,拓扑排序算法时间复杂度为< >.A. O<n>B. O<n+e>C. O<n*n>D. O<n*n*n>[合肥工业大学 2000 一、2 〔2分〕][南京理工大学 2001 一、9 〔1.5分〕][青岛大学 2002 二、3 〔2分〕]30. 关键路径是事件结点网络中〔〕.[西安电子科技大学 2001应用一、4 〔2分〕]A.从源点到汇点的最长路径 B.从源点到汇点的最短路径C.最长回路 D.最短回路31. 下面关于求关键路径的说法不正确的是〔〕.[南京理工大学 1998 一、12 〔2分〕] A.求关键路径是以拓扑排序为基础的B.一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同C.一个事件的最迟开始时间为以该事件为尾的弧的活动最迟开始时间与该活动的持续时间的差D.关键活动一定位于关键路径上32.下列关于AOE网的叙述中,不正确的是〔〕.A.关键活动不按期完成就会影响整个工程的完成时间B.任何一个关键活动提前完成,那么整个工程将会提前完成C.所有的关键活动提前完成,那么整个工程将会提前完成D.某些关键活动提前完成,那么整个工程将会提前完成[北方交通大学 1999 一、7 〔3分〕][工业大学 1999 一、1 <2分>]二、判断题1.树中的结点和图中的顶点就是指数据结构中的数据元素.〔〕[青岛大学 2001 四、1 〔1分〕]2.在n个结点的无向图中,若边数大于n-1,则该图必是连通图.〔〕[中科院软件所1997一、4<1分〕]3.对有n个顶点的无向图,其边数e与各顶点度数间满足下列等式e=.〔〕[南京航空航天大学 1996 六、4 〔1分〕]4. 有e条边的无向图,在邻接表中有e个结点.〔〕[南京理工大学 1998 二、5 〔2分〕]5. 有向图中顶点V的度等于其邻接矩阵中第V行中的1的个数.〔〕[合肥工业大学2001二、7<1分〕]6.强连通图的各顶点间均可达.〔〕[邮电大学 2000 一、3 〔1分〕]7.强连通分量是无向图的极大强连通子图.〔〕[邮电大学 2002 一、7 〔1分〕]8.连通分量指的是有向图中的极大连通子图.〔〕[燕山大学 1998 二、4 〔2分〕] 9.邻接多重表是无向图和有向图的链式存储结构.〔〕[南京航空航天大学 1995 五、5 〔1分〕]10. 十字链表是无向图的一种存储结构.〔〕[青岛大学 2001 四、7 〔1分〕]11. 无向图的邻接矩阵可用一维数组存储.〔〕[青岛大学 2000 四、5 〔1分〕]12.用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关.〔〕[东南大学 2001 一、4 〔1分〕] [中山大学 1994 一、3 〔2分〕]13.有n个顶点的无向图, 采用邻接矩阵表示, 图中的边数等于邻接矩阵中非零元素之和的一半.〔〕[邮电大学 1998 一、5 〔2分〕]14. 有向图的邻接矩阵是对称的.〔〕[青岛大学 2001 四、6 〔1分〕]15.无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵.〔〕[东南大学 2001 一、3 〔1分〕][哈尔滨工业大学 1999 三、4]16. 邻接矩阵适用于有向图和无向图的存储,但不能存储带权的有向图和无向图,而只能使用邻接表存储形式来存储它.〔〕[##海运学院 1995 一、9〔1分〕 1997 一、8〔1分〕 1998一、9〔1分〕]17. 用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中结点个数有关,而与图的边数无关.〔〕[##海运学院 1996 一、8 〔1分〕 1999 一、9 〔1分〕]18.一个有向图的邻接表和逆邻接表中结点的个数可能不等.〔〕[##交通大学 1998 一、12]19.需要借助于一个队列来实现DFS算法.〔〕[南京航空航天大学 1996 六、8 〔1分〕]20. 广度遍历生成树描述了从起点到各顶点的最短路径.〔〕[合肥工业大学 2001 二、8 〔1分〕]21.任何无向图都存在生成树.〔〕[邮电大学 2000 一、1 〔1分〕]22. 不同的求最小生成树的方法最后得到的生成树是相同的.〔〕[南京理工大学 1998二、3 〔2分〕]23.带权无向图的最小生成树必是唯一的.〔〕[南京航空航天大学 1996 六、7 〔1分〕] 24. 最小代价生成树是唯一的.〔〕[##大学 2001 一、5 〔1分〕]25.一个网〔带权图〕都有唯一的最小生成树.〔〕[大连海事大学 2001 一、14 〔1分〕]26.连通图上各边权值均不相同,则该图的最小生成树是唯一的.〔〕[哈尔滨工业大学1999 三、3]27.带权的连通无向图的最小〔代价〕生成树〔支撑树〕是唯一的.〔〕[中山大学 1994一、10〔2分〕]28. 最小生成树的KRUSKAL算法是一种贪心法〔GREEDY〕.〔〕[华南理工大学 2002 一、6〔1分〕]29. 求最小生成树的普里姆<Prim>算法中边上的权可正可负.〔〕[南京理工大学 1998二、2 〔2分〕]30.带权的连通无向图的最小代价生成树是唯一的.〔〕[东南大学 2001 一、5〔1分〕] 31. 最小生成树问题是构造连通网的最小代价生成树.〔〕[青岛大学 2001 四、10〔1分〕]32. 在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值.〔〕[合肥工业大学 2000 二、7〔1分〕]33. 在用Floyd 算法求解各顶点的最短路径时,每个表示两点间路径的path k-1[I,J]一定是path k [I,J]的子集<k=1,2,3,…,n>.〔〕[合肥工业大学 2000 二、6 〔1分〕]34.拓扑排序算法把一个无向图中的顶点排成一个有序序列.〔〕[南京航空航天大学1995五、8〔1分〕]35.拓扑排序算法仅能适用于有向无环图.〔〕[南京航空航天大学 1997 一、7 〔1分〕] 36. 无环有向图才能进行拓扑排序.〔〕[青岛大学 2002 一、7 〔1分〕2001 一、8 〔1分〕]37. 有环图也能进行拓扑排序.〔〕[青岛大学 2000 四、6 〔1分〕]38.拓扑排序的有向图中,最多存在一条环路.〔〕[大连海事大学 2001 一、6〔1分〕] 39.任何有向图的结点都可以排成拓扑排序,而且拓扑序列不唯一.〔〕[##交通大学1998一、13]40. 既使有向无环图的拓扑序列唯一,也不能唯一确定该图.〔〕[合肥工业大学 2001二、6〔1分〕]41.若一个有向图的邻接矩阵对角线以下元素均为零,则该图的拓扑有序序列必定存在.〔〕[中科院软件所 1997 一、5 〔1分〕]42.AOV网的含义是以边表示活动的网.〔〕[南京航空航天大学 1995 五、7 〔1分〕] 43.对一个AOV网,从源点到终点的路径最长的路径称作关键路径.[南京航空航天大学1995五、9<1分〕]44. 关键路径是AOE网中从源点到终点的最长路径.〔〕[青岛大学 2000 四、10〔1分〕]45. AOE网一定是有向无环图.〔〕[青岛大学 2001 一、9 〔1分〕]46. 在表示某工程的AOE网中,加速其关键路径上的任意关键活动均可缩短整个工程的完成时间.〔〕[长沙铁道学院 1997 一、2 <1分>]47.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短.〔〕[大连海事大学 2001 一、15 〔1分〕]48.在AOE图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少.〔〕[大连海事大学 2001 一、16 〔1分〕]49.当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径.[##交通大学1998 一、14]三、填空题1.判断一个无向图是一棵树的条件是______.2.有向图G的强连通分量是指______.[科技大学 1997 一、7]3.一个连通图的______是一个极小连通子图.[重庆大学 2000 一、1]4.具有10个顶点的无向图,边的总数最多为______.[华中理工大学 2000 一、7 〔1分〕] 5.若用n表示图中顶点数目,则有_______条边的无向图成为完全图.[燕山大学1998 一、6〔1分〕]6. 设无向图 G 有n 个顶点和e 条边,每个顶点Vi 的度为di〔1<=i<=n〉,则e=______[福州大学 1998 二、2 <2分>]7.G是一个非连通无向图,共有28条边,则该图至少有______个顶点.[西安电子科技大 2001软件一、8 〔2分〕]8. 在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要______条弧.[合肥工业大学 2000 三、8 〔2分〕]9.在有n个顶点的有向图中,每个顶点的度最大可达______.[武汉大学 2000 一、3] 10.设G为具有N个顶点的无向连通图,则G中至少有______条边.[长沙铁道学院 1997 二、2 <2分>]11.n个顶点的连通无向图,其边的条数至少为______.[哈尔滨工业大学 2000 二、2〔1分〕] 12.如果含n个顶点的图形形成一个环,则它有______棵生成树.[西安电子科技大学 2001软件一、2 〔2分〕]13.N个顶点的连通图的生成树含有______条边.[中山大学 1998 一、9 〔1分〕]14.构造n个结点的强连通图,至少有______条弧.[轻工业学院 2000 一、4〔2分〕] 15.有N个顶点的有向图,至少需要量______条弧才能保证是连通的.[西南交通大学 2000 一、3]16.右图中的强连通分量的个数为〔〕个.[邮电大学 2001 二、5 〔2分〕]17.N个顶点的连通图用邻接矩阵表示时,该矩阵至少有_______个非零元素.[中科院计算所1998 一、6〔1分〕][中国科技大学1998 一、6〔15/6分〕]18.在图G的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的______;对于有向图来说等于该顶点的______.[燕山大学 2001 二、5 〔3分〕]19. 在有向图的邻接矩阵表示中,计算第I个顶点入度的方法是______.[青岛大学 2002三、7 〔2分〕]20. 对于一个具有n个顶点e条边的无向图的邻接表的表示,则表头向量大小为______,邻接表的边结点个数为______.[青岛大学 2002 三、8 〔2分〕]21. 遍历图的过程实质上是______,breath-first search遍历图的时间复杂度______;depth-first search遍历图的时间复杂度______,两者不同之处在于______,反映在数据结构上的差别是______.[厦门大学1999一、3]22. 已知一无向图G=〔V,E〕,其中V={a,b,c,d,e } E={<a,b>,<a,d>,<a,c>,<d,c>,<b,e>}现用某一种图遍历方法从顶点a开始遍历图,得到的序列为abecd,则采用的是______遍历方法.[南京理工大学 1996 二、2 〔2分〕]23. 一无向图G〔V,E〕,其中V〔G〕={1,2,3,4,5,6,7},E〔G〕={〔1,2〕,<1,3〕,〔2,4〕,〔2,5〕,〔3,6〕,〔3,7〕,〔6,7〕〔5,1〕},对该图从顶点3开始进行遍历,去掉遍历中未走过的边,得一生成树G’<V,E’〕,V〔G’〕=V〔G〕,E〔G’〕={〔1,3〕,〔3,6〕,〔7,3〕,〔1,2〕,〔1,5〕,〔2,4〕},则采用的遍历方法是______.[南京理工大学 1997 三、6 〔1分〕]24. 为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需______存放被访问的结点以实现遍历.[南京理工大学 1999 二、9 〔2分〕]25. 按下图所示,画出它的广度优先生成树______和深度优先生成树______.[西安电子科技大学 1998 三、6 〔5分〕]26.构造连通网最小生成树的两个典型算法是______.[科技大学 1998 一、5]27.求图的最小生成树有两种算法,______算法适合于求稀疏图的最小生成树.[南京理工大学 2001 二、6〔2分〕]28. Prim〔普里姆〕算法适用于求______的网的最小生成树;kruskal〔克鲁斯卡尔〕算法适用于求______的网的最小生成树.[厦门大学1999 一、4]29.克鲁斯卡尔算法的时间复杂度为______,它对______图较为适合.[中科院计算所 1999 二、3 〔2分〕]30.对于含N个顶点E条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为______,利用Kruskal算法生成最小代价生成树其时间复杂度为______.[长沙铁道学院1998 二、2 <4分>]31.下面描述的是一种构造最小生成树算法的基本思想.设要处理的无向图包括n个节点V1,V2,...,Vn,用相邻矩阵A表示,边的权全是正数.请在下列划线处填上正确叙述. 〔1〕.若〔Vi,Vj〕是边,则A〔i,j〕的值等于______,若〔Vi,Vj〕不是边,则A〔i,j〕的值是一个比任何边的权______, 矩阵的对角线元素全为0.〔2〕.构造最小生成树过程中,若节点Vi已包括进生成树,就把相邻矩阵的对角线元素A 〔i,i〕置成______,若〔Vi,Vj〕已包括进生成树,就把矩阵元素A〔i,j〕置成______. 〔3〕.算法结束时,相邻矩阵中_____的元素指出最小生成树的_____.[##工业大学1998二、4<6分〕]32. 有一个用于n个顶点连通带权无向图的算法描述如下:〔1〕.设集合T1与T2,初始均为空;〔2〕.在连通图上任选一点加入T1;〔3〕.以下步骤重复n-1次:a.在i属于T1,j不属于T1的边中选最小权的边;b.该边加入T2.上述算法完成后,T2中共有______条边,该算法称______算法,T2中的边构成图的______.[南京理工大学 1999 二、7 〔4分〕]33. 有向图G可拓扑排序的判别条件是______.[长沙铁道学院 1998 二、9<2分>]34. Dijkstra最短路径算法从源点到其余各顶点的最短路径的路径长度按______次序依次产生,该算法弧上的权出现______情况时,不能正确产生最短路径.[南京理工大学 1999 二、8〔4分〕]35. 求从某源点到其余各顶点的Dijkstra算法在图的顶点数为10,用邻接矩阵表示图时计算时间约为10ms,则在图的顶点数为40,计算时间约为______ms.[南京理工大学 2000 二、3 〔1.5分〕]36.求最短路径的Dijkstra算法的时间复杂度为______.[哈尔滨工业大学 2001 一、5 〔2分〕]37.有向图G=<V,E>,其中 V<G>={0,1,2,3,4,5},用<a,b,d>三元组表示弧<a,b>与弧上的权d.E<G>为{<0,5,100>,<0,2,10><1,2,5><0,4,30><4,5,60><3,5,10><2,3,50><4,3,20>},则从源点0到顶点3的最短路径长度是______,经过的中间顶点是______.[南京理工大学 1998三、6 〔4分〕]38. 上面的图去掉有向弧看成无向图则对应的最小生成树的边权之和为______.[南京理工大学 1998 三、7〔4分〕]39.设有向图有n个顶点和e条边,进行拓扑排序时,总的计算时间为______.[西安电子科技大学 1999软件一、7 〔2分〕][武汉大学 2000 一、7] 40.AOV网中,结点表示______,边表示______.AOE网中,结点表示______,边表示______.[理工大学 2001 七、3 〔2分〕]41.在AOE网中,从源点到汇点路径上各活动时间总和最长的路径称为______.[重庆大学2000一、2]42.在 AOV网中,存在环意味着______,这是______的;对程序的数据流图来说,它表明存在______.[厦门大学1999一、2]43. 当一个AOV网用邻接表表示时,可按下列方法进行拓扑排序.〔1〕.查邻接表中入度为______的顶点,并进栈;〔2〕.若栈不空,则①输出栈顶元素Vj,并退栈;②查Vj的直接后继Vk,对Vk入度处理,处理方法是______;〔3〕.若栈空时,输出顶点数小于图的顶点数,说明有______,否则拓扑排序完成.[南京理工大学 1996 二、3 〔6分〕]44.已知图的邻接表结构为:CONST vtxnum={图的顶点数}TYPE vtxptr=1..vtxnum;arcptr=^arode;arode=RECORD adjvex:vtxptr; nextarc:arcptr END;vexnode=RECORD vexdata:{和顶点相关的信息};firstarc:arcptr END;adjlist=ARRAY[vtxptr]OF vexnode;本算法是实现图的深度优先遍历的非递归算法.其中,使用一个顺序栈stack.栈顶指针为top.visited为标志数组.PROC dfs<g:adjlist;v0:vtxptr>;top=0; write<v0>; visited[v0]:=ture; p:=g[v0].firstarc;WHILE <top<>0>OR<p<>NIL>DO[WHILE<1>_______DO[v:=p^.adjvex;IF<2>_______ THEN p:=p^.nextarcELSE [write<v>; visited[v]:=true; top:=top+1; stack[top]:=p;<3>_______] ]IF top<>0 THEN[p:=stack[top]; top:=top-1; <4>_______]]ENDP.同济大学 2000 二、2 <10分>]45.下面的算法完成图的深度优先遍历,请填空.PROGRAM graph_traver;CONST nl=max_node_number;TYPE vtxptr=1..nl; vtxptr0=0..nl;arcptr=^arode;arode=RECORD vexi ,vexj: vtxptr; nexti, nextj: arcptr; END;;vexnode=RECORD vexdata: char; firstin,firstout: arcptr; END;graph=ARRAY[vtxptr0] OF vexnode ;VAR ga:graph; n: integer;visited: ARRAY[vtxptr0] OF boolean ;FUNC order <g: graph; v: char>: vtxptr;<1>_______; i:=n;WHILE g[i].vexdata<>v DO i:=i-1;order:=i;ENDF;PROC creat<var g: graph>;readln<n,e>;FOR i:= 1 TO n DO [readln<g[i].vexdata>; g[i].firstin :=NIL ;g[i].firstout:=NIL;]FOR k:= 1 TO e DO [readln <vt,vh>;i:=order <g,vt>; j:=order <g,vh>; new <p>; p^.vexi:=i ; p^.vexj:=j p^.nextj:= ____<2>____; ___<3>____ :=p;p^.nexti:=: ____<4>____; ___<5>____ :=p;]ENDP;FUNC firstadj<g:graph; v:char>: vtxptr0;i:=order<g,v>; p:=g[i].firstout;IF p<>NIL THEN firstadj:=<6>_______ELSE firstadj:=0;ENDF;FUNC nextadj<g:graph; v:char; w:char>: vtxptr0;i:=order<g,v>; j:=order<g,w>; p:=<7>_______;WHILE<p<>NIL > AND <p^.vexj<>j> DO<8>______;IF <9>______AND<10>______THEN nextadj:=p^.nexti^.vexj ELSE nextadj:=0;ENDF;PROC dfs<g:graph; v0:char>;write<v0:2>; visited[order<g,v0>]:=true; w:=<11>_______;WHILE w<>0 DO[IF <12>______ THEN dfs<g,g[w].vexdata>;w:=<13>_______;]ENDP;PROC traver<g:graph>;FOR i:=1 TO n DO visited[i]:=false;FOR i:=1 TO n DO IF NOT visited[i] THEN dfs<g,g[i].vexdata>;ENDP;BEGINcreat<ga>; traver<ga>;END. [北方交通大学 1999 三〔20分〕]46.n个顶点的有向图用邻接矩阵array表示,下面是其拓扑排序算法,试补充完整.注:〔1〕.图的顶点号从 0开始计;〔2〕.indegree 是有n个分量的一维数组,放顶点的入度;〔3〕.函数 crein 用于算顶点入度;〔4〕.有三个函数push<data>,pop< >,check< >其含义为数据 data进栈,退栈和测试栈是否空〔不空返回1,否则0〕.crein< array ,indegree,n>{ for <i=0;i<n;i++> indegree[i]= <<1>_______>for<i=0,i<n;i++>for <j=0;j<n; j++> indegree[i]+=array[<2>_______][<3>_______];}topsort <array,indegree,n>{ count= <<4>_______>for <i=0;i<n;i++> if <<5>_______> push<i>while <check< >>{ vex=pop< >; printf<vex>; count++;for <i=0;i<n;i++>{ k=array<6>_______if <<7>_______ > { indegree[i]--; if <<8>_______ > push<i>; }}}if< count<n> printf<""图有回路〞>;} [南京理工大学 2000 三、4 〔6分〕]47.假设给定的有向图是用邻接表表示,作为输入的是图中顶点个数n和边的个数m, 以与图的m条边.在下面的程序中,我们用readdata程序过程输入图的信息,并建立该图的邻接表;利用topol程序过程获得图中顶点的一个拓扑序列.PROGRAM topol_order<input , output> ;CONST maxn=20 ;TYPE nodeptr=^nltype ;nltype=RECORD num : integer ; link : nodeptr END ;chtype=RECORD count : integer ; head : nodeptr END ;VAR ch : ARRAY [1 .. maxn] OF chtype ; m , n , top : integer ;PROCEDURE readdata ;VAR i , j , u , v : integer ; p : nodeptr ;BEGINwrite <′input vertex number n= ′>; readln <n> ;write <′input edge number m= ′>; readln<m> ;FOR i:=1 TO n DO BEGIN ch[i].count:= 0; ch[i].head:=NIL END;writeln<′input edges :′>;FOR j:= 1 TO m DOBEGIN write< j :3 , ′: ′> ; readln< u , v > ; new< p > ;ch[v].count:=ch[v].count+1; p^.num:=v; <1> ___ ; <2> __; ENDEND ;PROCEDURE topol ;VAR i, j, k: integer; t: nodeptr ;BEGINtop:= 0 ;FOR i := 1 TO n DOIF ch[i].count=0 THEN BEGIN ch[i].count := top ;top := i END;i:= 0 ;WHILE <3> ___ DOBEGIN <4> __; <5> __ ; write<j : 5> ;i:= i + 1 ;t:=ch[j].head ;WHILE t<>NIL DOBEGIN k := t^.num ; ch[k].count:=ch[k].count–1 ;IF ch[k].count=0 THEN BEGIN ch[k].count:=top; top:=k END;<6> ______ ; ENDEND ; writeln;IF i<n THEN writeln <′the network has a cycle!′>END;BEGINreaddata ; writeln <′output topol order : ′>; topolEND. [复旦大学 1995 三〔18分〕]48.如下为拓扑排序的C程序, Array〔1〕.列出对右图执行该程序后的输出结果.〔2〕.在程序空白处填上适当语句.void topsort<hdnodes graph [],int n>{int i,j,k,top; node_pointer ptr ;top=-1;for <i=0; i<n; i++>if <!graph[i].count>{graph[i].count=top; top=i; }for <i=0; i<n; i++>if<1>____ {fprintf<stderr, "\ngraph has a cycle \n">; exit<1>; } else {j=top;<2>_____; printf< "v%d, " ,j> ;for <ptr=graph[j].link; ptr; ptr=ptr->link>{k=ptr->vertex; graph[k].count--;if<<3>_____> {graph[k].count=top; top=k; } } }} [##大学 2000 六<15分>]四、应用题1.〔1〕.如果G1是一个具有n个顶点的连通无向图,那么G1最多有多少条边?G1最少有多少条边?〔2〕.如果G2是一个具有n个顶点的强连通有向图,那么G2最多有多少条边?G2最少有多少条边?〔3〕.如果G3是一个具有n个顶点的弱连通有向图,那么G3最多有多少条边?G3最少有多少条边?[复旦大学 1997 一〔9分〕]2.n个顶点的无向连通图最少有多少条边?n个顶点的有向连通图最少有多少条边?[##大学 2000 一、3 <4分>]3.一个二部图的邻接矩阵A是一个什么类型的矩阵?[科技大学 1999 一、8〔2分〕] 4.证明:具有n个顶点和多于n-1条边的无向连通图G一定不是树.[东南大学 1993 四〔10分〕]5.证明对有向图的顶点适当的编号,可使其邻接矩阵为下三角形且主对角线为全0的充要条件是该图为无环图.[邮电大学 2002 三〔10分〕]6.用邻接矩阵表示图时,矩阵元素的个数与顶点个数是否相关?与边的条数是否有关?[西安电子科技大学 2000计应用一、6〔5分〕]7.请回答下列关于图<Graph>的一些问题:〔每题4分〕〔1〕.有n个顶点的有向强连通图最多有多少条边?最少有多少条边?〔2〕.表示有1000个顶点、l000条边的有向图的邻接矩阵有多少个矩阵元素?是否稀疏矩阵?〔3〕.对于一个有向图,不用拓扑排序,如何判断图中是否存在环?[清华大学2000一<12分〕]8.解答问题.设有数据逻辑结构为:B = <K, R>, K = {k1, k2, …, k9}R={<k1, k3>, <k1, k8>, <k2, k3>,<k2, k4>, <k2, k5>, <k3, k9>,<k5, k6>, <k8, k9>, <k9, k7>, <k4, k7>, <k4, k6>}〔1〕.画出这个逻辑结构的图示.〔3分〕〔2〕.相对于关系r, 指出所有的开始接点和终端结点.〔2分〕〔3〕.分别对关系r中的开始结点,举出一个拓扑序列的例子.〔4分〕〔4〕.分别画出该逻辑结构的正向邻接表和逆向邻接表.〔6分〕[##工业大学 1999 三〔15分〕]9.有向图的邻接表存储如下:〔1〕.画出其邻接矩阵存储;〔2〕.写出图的所有强连通分量;〔3〕.写出顶点a到顶点i的全部简单路径.[东北大学 1997 一、5 <5分>]10.试用下列三种表示法画出网G 的存储结构,并评述这三种表示法的优、缺点:〔1〕.邻接矩阵表示法; 〔2〕.邻接表表示法; 〔3〕.其它表示法.[华中理工大学2000 三〔12分〕]11.已知无向图G,V〔G〕={1,2,3,4},E〔G〕={〔1,2〕,〔1,3〕,〔2,3〕,〔2,4〕,〔3,4〕}试画出G的邻接多表,并说明,若已知点I,如何根据邻接多表找到与I相邻的点j?[东南大学 1994 一、2 〔8分〕 1998 一、6〔8分〕]12.如何对有向图中的顶点号重新安排可使得该图的邻接矩阵中所有的1都集中到对角线以上?[清华大学 1999 一、5 〔2分〕]13.假定G=〔V,E〕是有向图,V={1,2,...,N},N>=1,G以邻接矩阵方式存储,G的邻接矩阵为A,即A是一个二维数组,如果i到j有边,则A[i,j]=1,否则A[i,j]=0,请给出一个算法,该算法能判断G是否是非循环图〔即G中是否存在回路〕,要求算法的时间复杂性为O<n*n>.[##大学 1998 三<16分>]。

数据结构 第七章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构 第七章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构第七章测验一、单选题 (共100.00分)1. 以下结构不是存储结构的()A. 邻接表B. 逆邻接表C. 邻接矩阵D. 有向无环图正确答案:D2. 一个有向完全图有10个顶点,它共包含()A. 45条边B. 100条边C. 45条弧D. 90条弧正确答案:D3. 图遍历的算法有()A. 中序遍历B. 普里姆C. 佛洛依德D. 广度优先搜索正确答案:D4. 以下算法中,用于求解两点最短路径的算法是()A. 克鲁斯卡尔B. 迪杰斯特拉C. 普里姆D. 深度优先搜索正确答案:B5. 以下描述错误的是()A. 第一个顶点和最后一个顶点相同的路径称为回路B. 所有顶点不重复出现的路径称为拓扑路径C. 任意两个顶点都存在路径的无向图称为连通图D. 强连通图只包含一个强连通分量正确答案:B6. 已知某个有向图的邻接矩阵中,第i列包含1的总数为5,第i列对应顶点k,则()A. 顶点k的度为5B. 顶点k的出度为5C. 顶点k的入度为5D. 不好说正确答案:C7. 已知有向图G=(V,E),其中V={1,2,3,4,5,6,},E={<2,1>,<3,2>,<1,3>,<5,3>,<1,5>,<2,4>,<1,6>},则出度最大的点是()A. 6B. 4C. 3D. 1正确答案:D8. 已知有向图G=(V,E),其中V={1,2,3,4,5},E={<2,1>,<3,2>,<1,3>,<5,3>,<1,5>,<4,3>},则拓扑序列的起点是()A. 2B. 4C. 3D. 1正确答案:B9. 已知无向图G=(V,E),其中V={1,2,3,4,5,6,7,8}, E={(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (3, 7), (4, 8), (5, 8)},从1出发,数字小的顶点优先,则深度优先搜索序列为()A. 1 2 3 4 5 6 7 8B. 1 2 4 5 8 3 6 7C. 1 2 4 8 5 3 6 7D. 1 2 3 4 5 8 6 7正确答案:C10. 已知有向图G=(V,E),其中V={a,b,c,d,e},E={<a, e="">,<b, a="">,<c, b="">,<d, c="">,<e, c="">,<e, d="">},从a出发,字母小的顶点优先,则广度优先搜索的序列是()A. a e c d bB. a b d c eC. a d e c bD. a b c d e正确答案:A。

《数据结构及其应用》笔记含答案 第七章_查找

《数据结构及其应用》笔记含答案 第七章_查找

第7章查找一、填空题1、查找表分为_动态查找表_和_静态查找表_两类。

2、在等概率查找的情况下,顺序表查找的平均查找长度为_(n+1)/2_。

2、若二叉排序树的右子树不空,则右子树上所有结点的值均___大于____它的根结点的值。

二、判断题1、顺序查找可以在顺序表上进行,不能在单链表上进行。

(×)2、折半查找只能在有序的顺序表上进行。

(√)3、对于给定的关键字集合,以不同的次序插入到初始为空的二叉排序树中,得到的二叉排序树是相同的。

(×)4、若二叉排序树中关键字互不相同,那么,最小值结点必定无左孩子,最大值结点必定无右孩子。

(√)5、在二叉排序树中,最大值结点和最小值结点一定是叶子结点。

(×)6、哈希法存储的基本思想是由关键码的值决定数据的存储地址。

(√)三、单项选择题1、对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为(C)。

A.(n-1)/2 B.n/2 C.(n+1)/2 D.n解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。

2、适用于折半查找的表的存储方式及元素排列要求为(D)。

A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

3、如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用( C)查找法。

A.顺序查找B.折半查找C.分块查找D.哈希查找解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就可以在该块内进行插入和删除运算。

由于块内是无序的,故插入和删除比较容易,无需进行大量移动。

如果线性表既要快速查找又经常动态变化,则可采用分块查找。

4、折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

若查找表中元素58,则它将依次与表中(A)比较大小,查找结果是失败。

数据结构第7章作业参考答案

数据结构第7章作业参考答案

第7章查找一、单选1.顺序查找法比较适合于(C )。

A. 数据有序的序列B. 数据基本有序的序列C. 数据无序的序列D. 数据集比较大的序列2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,查找成功时平均查找长度ASL为(B )。

A. (n-1)/2B. (n+1)/2C. n/2D. n3.二分查找法适用于存储结构为(A )的线性表。

A. 顺序存储且按关键字有序B. 链式存储且按关键字有序C. 顺序存储或链式存储D. 顺序存储且无序4.采用分快查找时,数据的组织方式为( B )。

A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同5.设有一个已按各元素的值排好序的顺序表(长度大于2),现分别用顺序查找法和二分查找法查找与给定值k 相等的元素,比较的次数分别是s 和b,在查找不成功的情况下,s 和b的关系是(C )。

A. s=bB. s<bC. s>bD. s>=b6.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。

若对索引表采用顺序查找来确定块,并在确定的块中进行顺序查找,则在查找概率相等的情况下,分块查找成功时的平均查找长度为(B )。

A. 41B. 23C. 21D. 627.含n个关键字的二叉排序树的平均查找长度主要取决于( C )。

A. 关键字的个数B. 关键字的取值范围C. 树的形态D. 关键字的数据类型8.在二叉排序树上查找一个记录,最坏情况下查找成功时的平均查找长度为(A )。

A. 与顺序表的平均查找长度相同B. 小于顺序表的平均查找长度C. 大于顺序表的平均查找长度D. 无法与顺序表的平均查找长度比较9.在一个二叉排序树中,按( B )遍历是一个有序序列。

数据结构答案第7章

数据结构答案第7章

第7 章查找技术1970-01-01第7 章查找技术课后习题讲解1. 填空题⑴顺序查找技术适合于存储结构为()的线性表,而折半查找技术适用于存储结构为()的线性表,并且表中的元素必须是()。

【解答】顺序存储和链接存储,顺序存储,按关键码有序⑵设有一个已按各元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少需要比较()次,至多需比较()次。

【解答】1,7【分析】在折半查找判定树中,查找成功的情况下,和根结点的比较次数最少,为1次,最多不超过判定树的深度。

⑶对于数列{25,30,8,5,1,27,24,10,20,21,9,28,7,13,15},假定每个结点的查找概率相同,若用顺序存储结构组织该数列,则查找一个数的平均比较次数为()。

若按二叉排序树组织该数列,则查找一个数的平均比较次数为()。

【解答】8,59/15【分析】根据数列将二叉排序树画出,将二叉排序树中查找每个结点的比较次数之和除以数列中的元素个数,即为二叉排序树的平均查找长度。

⑷长度为20的有序表采用折半查找,共有()个元素的查找长度为3。

【解答】4【分析】在折半查找判定树中,第3层共有4个结点。

⑸假定一个数列{25,43,62,31,48,56},采用的散列函数为H(k)=k mod 7,则元素48的同义词是()。

【解答】62【分析】H(48)= H(62)=6⑹在散列技术中,处理冲突的两种主要方法是()和()。

【解答】开放定址法,拉链法⑺在各种查找方法中,平均查找长度与结点个数无关的查找方法是()。

【解答】散列查找【分析】散列表的平均查找长度是装填因子的函数,而不是记录个数n的函数。

⑻与其他方法相比,散列查找法的特点是()。

【解答】通过关键码计算记录的存储地址,并进行一定的比较2. 选择题⑴静态查找与动态查找的根本区别在于()。

A 它们的逻辑结构不一样B 施加在其上的操作不同C 所包含的数据元素的类型不一样D 存储实现不一样【解答】B【分析】静态查找不涉及插入和删除操作,而动态查找涉及插入和删除操作。

数据结构 第7章答案(已核 )

数据结构 第7章答案(已核 )

7.6习题一、名词解释(1)主关键字(2)平均查找长度(3)静态查找表(4)动态查找表(5)二叉查找树(6)哈希表二、填空题(1)静态查找表的存储结构主要采用顺序存储结构,如果需要,也可以采用链式存储结构,但当使用二分(折半)查找算法或(斐波那契数列)查找算法来查找时,要求查找表只能是顺序存储结构,并且查找表中的数据序列必须有序。

(2)通过中根序遍历一棵二叉查找树得到的数据序列必然是一个非降序(有序)序列。

(3)各种查找方法中,平均查找长度与结点个数n无关的查找方法是哈希查找。

*(4)如果对一个有序查找表SST进行折半查找,在最坏时要比较10次,那么对该查找表进行顺序查找时,在最坏时要比较210 -1 次。

解析:最坏情况要比较10次,说明树的高度是10。

而一棵深度为10的二叉树,最多有210 -1个结点。

*(5)深度为7的平衡二叉树至少有33 个结点。

解析:在节点最少的情况下,左右子树的高度差为1,则总节点数S(n)=S(n-1)+S(n-2)+1。

已知,初始值S(1) = 1,S(2) = 2,可以推出:S(3) = 4S(4) = 7S(5) = 12S(6) = 20S(7) = 33所以,高度为7的平制衡二百叉树最少结点数是33。

假设深度为n的平衡二叉树至少有F(n)个结点,那么F(n)满足F(n)=F(n-1)+F(n-2)+1。

三、简答题(1)请画出长度为8的有序查找表的折半查找判定树。

(2)折半查找的前提:顺序存储、查找表有序。

(3)已知关键字序列为{45,28,67,33,29,50},二叉排序树初始为空,要求:①画出按正向(从关键字45开始)顺序插入结点建立的二叉排序树。

②画出按反向(从关键字50开始)顺序插入结点建立的二叉排序树。

(4)二叉排序树的平均查找长度:与结点个数和树的形态有关。

(5)设哈希表的地址空间为0~6,哈希函数H(key)=key % 7。

请对关键字序列{32,13,49,18,22,38}按线性探测再散列处理冲突的方法构造哈希表。

数据结构与算法(C语言篇)第7章 习题答案[2页]

数据结构与算法(C语言篇)第7章 习题答案[2页]

习题答案1.思考题(1)首先采用循环的方式对单向循环链表进行遍历,然后寻找需要删除元素的上一个元素与下一个元素,最后将这两个元素进行连接,即可实现指定元素的删除。

每一次删除元素,单向循环链表都会重新连接为一个新的环。

然后继续指定元素进行删除,重复步骤,直到环中的元素全部删除完为止。

(2)回溯法,即确定了解空间的组织结构后,就可以从开始结点开始,以深度优先的方式对整个解空间进行搜索。

这个开始的结点就成为活结点,同时也是当前的扩展结点。

在此结点向下进行纵深搜索移动的一个新的结点,那么这个新借贷就会成为新的活结点和拓展结点,但是如果当前的扩展结点不能再向纵深移动,那么此活结点就会变为死结点,此时就要进行回溯移动,移动到最近的活结点,并将此活结点变为当前的扩展结点。

这就是回溯的工作方式,也是其工作的基本思想。

(3)动态规划法与分治法类似,其基本的思想是将规模较大的问题分解为较小的子问题,先求解子问题,然后通过这些子问题的解得到原问题的解,但是与分治法不同的是,经过分解后得到的子问题之间并不是相互独立的。

为了达到这一目的,可以用一个表来记录所有已经解决的子问题,这样不管计算过的子问题的答案在后面的求解过程中是否被用到都会被记录,这就是动态规划法的思想。

4.编程题(1)1int g[N][N] //表示无向图对应的矩阵2#define M (1 << (N-1))34int dp[N][M];56void TSP(){7 //初始化dp[i][0]8 int i = 0, j, k;9 for(i = 0; i < N; i++){10 dp[i][0] = g[i][0];11 }12 //求解dp[i][j],先更新列再更新行13 for(j = 1; j < M; j++){14 for(i = 0; i < N; i++){15 dp[i][j] = INF;16 //如果集合j(或状态j)中包含顶点i,则不符合条件退出17 //判断方法为:判断j对应的二进制数的第i位是否为118 if(((j >> (i - 1)) & 1) == 1){19 continue;20 }21 for(k = 1; k < N; k++){22 //跳过不合理的路径选择23 if(((j >> (k - 1)) & 1) == 0){24 continue;25 }26 //更新dp[i][j]的值27 //计算从i开始经过状态j回到起始点的最短距离28 if(dp[i][j] > g[i][k] + dp[k][j ^ (1 << (k - 1))]){29 dp[i][j] = g[i][k] + dp[k][j ^ (1 << (k - 1))];30 }31 }32 }33 }34}35。

数据结构第7章习题答案

数据结构第7章习题答案

第7章 《图》习题参考答案一、单选题(每题1分,共16分)( C )1. 在一个图中,所有顶点的度数之和等于图的边数的倍。

A .1/2 B. 1 C. 2 D. 4 (B )2. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。

A .1/2 B. 1 C. 2 D. 4 ( B )3. 有8个结点的无向图最多有条边。

A .14 B. 28 C. 56 D. 112 ( C )4. 有8个结点的无向连通图最少有条边。

A .5 B. 6 C. 7 D. 8 ( C )5. 有8个结点的有向完全图有条边。

A .14 B. 28 C. 56 D. 112 (B )6. 用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。

A .栈 B. 队列 C. 树 D. 图 ( A )7. 用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。

A .栈 B. 队列 C. 树 D. 图( C )8. 已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是( D )9. 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按深度优先遍历的结点序列是A . 0 2 4 3 1 5 6 B. 0 1 3 5 6 4 2 C. 0 4 2 3 1 6 5 D. 0 1 23465 ( D )10. 已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是( A )11. 已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是A .0 2 4 3 1 5 6B. 0 1 3 6 5 4 2C. 0 1 3 4 2 5 6D. 0 3 6 1 5 4 2⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡0100011101100001011010110011001000110010011011110A .0 1 3 2 B. 0 2 3 1 C. 0 3 2 1 D. 0 1 2 3A.0 3 2 1 B. 0 1 2 3C. 0 1 3 2D. 0 3 1 2(A)12. 深度优先遍历类似于二叉树的A.先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历(D)13. 广度优先遍历类似于二叉树的A.先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历(A)14. 任何一个无向连通图的最小生成树A.只有一棵 B. 一棵或多棵 C. 一定有多棵 D. 可能不存在(注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小的情况唯一)二、填空题(每空1分,共20分)1. 图有邻接矩阵、邻接表等存储结构,遍历图有深度优先遍历、广度优先遍历等方法。

数据结构第7章-答案

数据结构第7章-答案

一、单选题C01、在一个图中,所有顶点的度数之和等于图的边数的倍。

A)1/2 B)1 C)2 D)4B02、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。

A)1/2 B)1 C)2 D)4B03、有8个结点的无向图最多有条边。

A)14 B)28 C)56 D)112C04、有8个结点的无向连通图最少有条边。

A)5 B)6 C)7 D)8C05、有8个结点的有向完全图有条边。

A)14 B)28 C)56 D)112B06、用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。

A)栈 B)队列 C)树 D)图A07、用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。

A)栈 B)队列 C)树 D)图A08、一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为。

A)O(n) B)O(e) C)O(n+e) D)O(n2)C09、已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是。

A)0 2 4 3 1 5 6 B)0 1 3 6 5 4 2 C)0 1 3 4 2 5 6 D)0 3 6 1 5 4 2B10、已知图的邻接矩阵同上题,根据算法,则从顶点0出发,按广度优先遍历的结点序列是。

A)0 2 4 3 6 5 1 B)0 1 2 3 4 6 5 C)0 4 2 3 1 5 6 D)0 1 3 4 2 5 6D11、已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是。

A)0 1 3 2 B)0 2 3 1 C)0 3 2 1 D)0 1 2 3A12、已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是。

A)0 3 2 1 B)0 1 2 3 C)0 1 3 2 D)0 3 1 2A13、图的深度优先遍历类似于二叉树的。

A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历D14、图的广度优先遍历类似于二叉树的。

《数据结构》第07章在线测试

《数据结构》第07章在线测试

《数据结构》第07章在线测试《数据结构》第07章在线测试剩余时间:57:42答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)1、对线性表进行折半查找时,要求线性表必须_______。

A、以顺序方式存储B、以链式方式存储C、以顺序方式存储且表中元素按关键字有序排列D、以链式方式存储且表中元素按关键字有序排列2、用折半查找对长度为12的有序表进行查找,则等概率下查找成功时的平均查找长度为_______。

A、35/12B、37/12C、39/12D、43/123、用链地址法处理冲突构造的散列表中,每个地址单元所链接的同义词表的_______相同。

A、关键字B、元素值C、散列地址D、含义4、用线性探测法解决冲突问题时,所产生的一系列后继散列地址_______。

A、可以大于或小于但不能等于原散列地址B、必须大于或等于原散列地址C、必须小于或等于原散列地址D、无具体限制5、哈希函数有一个性质:函数值应按_______取其值域的每一个值。

A、最小概率B、最大概率C、平均概率D、同等概率第二题、多项选择题(每题2分,5道题共10分)1、构造散列表时解决冲突常用的方法有_______。

A、链地址法B、数字分析法C、开放定址法D、平方取中法E、再哈希法F、求余法G、建立公共溢出区2、影响散列表的平均查找长度的因素有_______。

A、散列函数B、散列表长C、装填因子D、处理冲突的方法3、在顺序表的顺序查找算法中,监视哨的位置_______。

A、只能在表头B、只能在表尾C、可以在表头D、可以在表尾4、对序列{50,72,43,85,75,20,35,45,30}按顺序建二叉排序树,则在树中须比较3次方可查找成功的元素有_______。

A、50B、43C、85D、75E、20F、35G、45H、305、在下列各种查找方法中,平均查找长度与表长有关的查找方法是_______。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章查找复习测试题
一、单选题
1.顺序查找适合于存储结构为( D )的线性表。

A)散列存储B)压缩存储
C)索引存储D)顺序或链式存储
2.如果要求用线性表既能较快地查找,又能适应动态变化的要求,则可采用( A )查找方法。

A)分块查找B)顺序查找
C)折半查找D)基于属性
3.已知一如下10个记录的表,其关键字序列为(2,15,19,25,30,34,44,55,58,80),用折半查找法查找关键字为55的记录,比较次数是( B )。

A)1次B)2次
C)3次D)4次
4.二叉排序树中,最小值结点的( A )。

A)左指针一定为空B)右指针一定为空
C)左、右指针均为空D)左、右指针均不为空
5.哈希表的地址区间为0~16,哈希函数为H(K)=K MOD 17。

采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到哈希表中,则元素59存放在哈希表中的地址为( C )。

A)8 B)9
C)10 D)11
6.设有一组记录的关键字为(19,14,23,1,68,20,84,27,55,11,10,79),用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有( D )个记录。

A)1 B)2
C)3 D)4
7.索引顺序表中包含( A )。

A)顺序表和索引表B)索引表
C)顺序表D)索引
8.向一棵AVL(平衡二叉树)插入元素时,可能要对最小不平衡子树进行调整,此调整分为( C )种旋转类型。

A)2 B)3
C)4 D)5
9.适用于折半查找的表的存储方式及元素排列要求为( D )。

A)链接方式存储,元素无素B)链接方式存储,元素有素
C)顺序方式存储,元素无序D)顺序方式存储,元素有序
10.按( B )遍历二叉排序树得到的序列是一个有序序列。

A)前序B)中序
C)后序D)层次
11.二叉排序树中,关键字最大的结点( B )。

A)左指针一定为空B)右指针一定为空
C)左、右指针均为空D)左、右指针均不为空
12.静态查找表与动态查找表两者的根本差别在于( D )。

A)逻辑结构不同B)存储实现不同
C)数据元素的类型不同D)施加的操作不同
13.与其他查找方法相比,散列查找法的特点是( B )。

A)通过关键字比较进行查找
B)通过关键字计算记录存储地址,并进行地址的比较
C)通过关键字计算记录存储地址,并进行一定的比较查找
D)通过关键字比较进行查找,并计算记录存储地址
14.在函数H(k)=k MOD m中,一般来讲,m应取( C )。

A)奇数B)偶数
C)素数D)充分大的数
15.散列技术中的冲突是指(D )。

A)两个元素具有相同的序号B)两个元素的键值不同,而其他属性相同C)数据元素过多D)不同键值的元素具有相同的存储地址16.下面关于哈希查找的说法正确的是( C )。

A)哈希函数构造得越复杂越好,因为这样随机性好
B)除留余数法是所有哈希函数中最好的
C)不存在特别好与坏的哈希函数,要视情况而定
D)若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单地将该元素删去即可。

17.用折半查找法查找表的元素的速度比用顺序法( D )。

A)必然快B)必然慢
C)相等D)不能确定
18.已知10个元素(54,28,16,73,62,95,60,26,43,79),按照依次插入的方法生成一棵二叉排序树。

查找值为62的结点所需比较的次数为( B )。

A)2 B)3
C)4 D)5
二、填空题
1.(直接定址法)法构造的哈希函数肯定不会冲突。

2.已知数组a中元素从a[1]至a[n]递增有序,Search_Bin函数采用折半查找(即二分法查找)的思想在a[1]~a[n]中查找值为m的元素。

若找到,则函数返回相应元素的位置(下标),否则返回0。

填空,使算法完整。

int Search_Bin( int a[ ], int n, int m)
{
low=1; high=n;
while( low<=high )
{
mid=(low+high)/2;
if ( m==a[mid] ) return (1)mid ;
else if( m<a[mid] ) high=mid-1;
else (2)_____low=mid+1__________;
}
return 0;
}
3.对于二叉排序树的查找,若根结点元素的键值大于被查找元素的键值,则应该在该二叉树的(左子树上)继续查找。

4.设有一个已按元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少要比较( 1 )次,至多要比较(7 )次。

5.二叉排序树的查找效率与树的形态有关。

当二叉排序树退化成单支树时,查找算法退化为顺序查找,其平均查找长度为((n+1)/2 )。

三、判断题。

1.采用二分查找法对有序表进行查找总比采用顺序查找法对其进行查找要快。

( F )2.散列法中的冲突指的是具有不同关键字的元素对应于相同的存储地址。

(T)3.中序遍历二叉排序树的结点不能得到排好序的结点序列。

(F)4.查找相同结点的效率折半查找总比顺序查找高。

( F )5.完全二叉树肯定是平衡二叉树。

(T)6.N个结点的二叉排序树有多种,其中树高度最小的二叉排序树查找效率是最佳的。

( T )
四、应用题。

1.已知关键字序列为{ 53,17,19,61,98,75,79,63,46,40 },给出利用这些关键字构造的二叉排序树。

解:二叉排序树如下所示:。

相关文档
最新文档