数据结构第7章复习题
数据结构章节练习题-答案第7章图
7.1 选择题1. 对于一个具有n个顶点和e条边的有向图,在用邻接表表示图时,拓扑排序算法时间复杂度为()A) O(n)B)O(n+e)C) O(n*n)D)O(n*n*n)【答案】B2. 设无向图的顶点个数为n,则该图最多有()条边。
A) n-1B)n(n-1)/2C)n(n+1)/2【答案】B3. 连通分量指的是()A) 无向图中的极小连通子图B) 无向图中的极大连通子图C) 有向图中的极小连通子图D) 有向图中的极大连通子图【答案】B4. n 个结点的完全有向图含有边的数目()A) n*n B) n(n+1) C) n/2【答案】D5. 关键路径是()A) AOE网中从源点到汇点的最长路径B) AOE网中从源点到汇点的最短路径C) AOV网中从源点到汇点的最长路径D) n2D) n* (n-1)D) AOV网中从源点到汇点的最短路径【答案】 A 6.有向图中一个顶点的度是该顶点的()A)入度B)出度C)入度与出度之和D)(入度+出度)12【答案】C7.有e 条边的无向图,若用邻接表存储,表中有()边结点。
A) e B) 2eC) e-1D) 2(e-1)【答案】B8.实现图的广度优先搜索算法需使用的辅助数据结构为()A)栈B)队列C)二叉树D)树【答案】B9.实现图的非递归深度优先搜索算法需使用的辅助数据结构为()A)栈B)队列C)二叉树D)树【答案】 A 10.存储无向图的邻接矩阵一定是一个()A)上三角矩阵B)稀疏矩阵C)对称矩阵D)对角矩阵【答案】C11.在一个有向图中所有顶点的入度之和等于出度之和的()倍A) B) 1C) 2D) 4答案】B12.在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为(A) O(n)B) O(n+e)C 0(n2)D) 0(n3))【答案】B13 .下列关于AOE网的叙述中,不正确的是()A) 关键活动不按期完成就会影响整个工程的完成时间B) 任何一个关键活动提前完成,那么整个工程将会提前完成C) 所有的关键活动提前完成,那么整个工程将会提前完成D) 某些关键活动提前完成,那么整个工程将会提前完成【答案】B14. 具有10 个顶点的无向图至少有多少条边才能保证连通()A ) 9B) 10C) 11D) 12【答案】A15. 在含n 个顶点和e 条边的无向图的邻接矩阵中,零元素的个数为()A)e B)2eC)n2-e D)n2-2e【答案】D7.2 填空题1 .无向图中所有顶点的度数之和等于所有边数的________________ 倍。
数据结构复习试题
题目选至第7章一、填空题(2分/题,共10题)1.数据是指所有能够输入到计算机中被计算机加工、处理的符号的集合。
2.可以把计算机处理的数据,笼统地分成数值型和非数值型两大类。
3.数据的逻辑结构就是指数据间的邻接关系。
10.从整体上看,数据在存储器有两种存放的方式:一是集中存放在一个连续的存存储区中;一是利用存储器中的零星区域,分散地存放在存的各个地方。
12.“基本操作”是指算法中那种所需时间与操作数的具体取值无关的操作。
5.不带表头结点的链表,是指该链表的表头指针直接指向该链表的起始结点。
6.在一个双链表中,已经由指针ptr指向需要删除的存储结点,则删除该结点所要执行的两条操作是①ptr->Prior->Next = ptr->Next; ②ptr->Next->Prior = ptr->Prior; 。
7.设tail是指向非空、带表头结点的循环单链表的表尾指针。
那么,该链表起始结点的存储位置应该表示成 tail->Next->Next 。
9.顺序表Sq = (a1,a2,a3,…,an)(n≥1)中,每个数据元素需要占用w个存储单元。
若m为元素a1的起始地址,那么元素an的存储地址是 m+(n-1)*w 。
1.限定插入和删除操作只能在一端进行的线性表,被称为是栈。
2.如果在顺序栈满时仍打算进行进栈操作,就称为发生了“上溢”出错。
3.如果在顺序栈空时仍打算进行出栈操作,就称为发生了“下溢”出错。
4.在具有n个数据结点的循环队列中,队满时共有 n-1 个数据元素。
5.如果操作顺序是先让字母A、B、C进栈,做两次出栈;再让字母D、E、F进栈,做一次出栈;最后让字母G进栈,做三次出栈。
最终这个堆栈从栈顶到栈底的余留元素应该是 DA 。
6.中缀表达式(a+b)-(c/(d+e))对应的后缀表达式是 ab+cde+/- 。
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个顶点的有向图,至少需要()条边。
数据结构第7章图习题
、单项选择题1.在一个无向图 G 中,所有顶点的度数之和等于所有边数之和的 _________ 倍A .l/2B .1D .42.在一个有向图中, 所有顶点的入度之和等于所有顶点的出度之和的 ________倍A .l/2 C .2D .43.一个具有 n 个顶点的无向图最多包含 _____ 条边。
A .nB .n +1C .n-1D .n(n-1)/24.一个具有 n 个顶点的无向完全图包含 _____ 条边。
A .n(n-l)B .n(n+l)C .n(n-l)/2D .n(n-l)/25.一个具有 n 个顶点的有向完全图包含 _____ 条边。
A .n(n-1)B .n(n+l)C .n(n-l)/2D .n(n+l)/2 6.对于具有 n 个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为A. nB. n><h C .n-17 .无向图的邻接矩阵是一个 ______A .对称矩阵 C .上三角矩阵8.对于一个具有 n 个顶点和 e 条边的无 (有)向图,若采用邻接表表示,则表头 向量的大小为 。
A .n C . 2nD . 2e 9.对于一个具有 n 个顶点和 e 条边的无 (有)向图,若采用邻接表表示,则所有 顶C .2B .1 D . (n-I)也-I)B .零矩阵 D .对角矩阵 B .e点邻接表中的结点总数为_________ 。
B. eC. 2nD. 2e10.在有向图的邻接表中,每个顶点邻接表链接着该顶点所有邻接点。
A .入边B.出边C.入边和出边 D .不是入边也不是出边11.在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有邻接点。
A .入边B.出边C.入边和出边 D .不是人边也不是出边12.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是A .完全图B.连通图C.有回路 D .一棵树13.采用邻接表存储的图的深度优先遍历算法类似于二叉树的算法。
数据结构复习题-第7章答案2014-6-16
、选择题(每小题 1 分,共 10分)1. 一个 n 个顶点的连通无向图,其边的个数至少为( C )。
A.n+l B.n C.n-l D.2n2. 下列哪一种图的邻接矩阵是对称矩阵( B )。
A. 有向图 B. 无向图 C.AOV 网 D.AOE 网5. 无 向 图 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 )} ,由顶点 a 开始对该图进行深度优先遍历, 得到的顶点序列正确的是 ( D )。
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,b6. 用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。
A. 栈 B. 队列 C. 树 D. 图7. 以下数据结构中,哪一个是线性结构( D )。
A. 广义表 B. 二叉树 C. 图 D. 栈8. 下面哪一方法可以判断出一个有向图是否有环(回路) ( B )。
A. 最小生成树B. 拓扑排序C. 求最短路径D. 求关键路径 9. 在一个图中,所有顶点的度数之和等于图的边数的( C )倍。
10. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(B )倍。
A. 1/2B. 1C. 2D. 411. 有 8 个顶点无向图最多有( B )条边。
A. 14 B. 28 C. 56 D. 11212. 有 8 个顶点无向连通图最少有( C )条边。
A. 5 B. 6 C. 7 D. 813. 有 8个顶点有向完全图有( C )条边。
A. 14 B. 28 C. 56 D. 11214. 下列说法不正确的是( A )。
A. 图的遍历是从给定的源点出发每一个顶点仅被访问一次 C. 图的深度遍历不适用于有向图B. 遍历的基本算法有两种:深度遍历和广度遍历 D •图的深度遍历是一个递归过程 二、判断题(每小题 1 分,共 10分)1. n 个顶点的无向图至多有 n (n-1) 条边。
数据结构第七章习题答案
第七章图
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。
数据结构第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. 图有邻接矩阵、邻接表等存储结构,遍历图有深度优先遍历、广度优先遍历等方法。
《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)第七章练习题答案第7章查找1.选择题(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n答案:C解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。
(2)适用于折半查找的表的存储方式及元素排列要求为()。
A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序答案:D解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找法。
A.顺序查找B.折半查找C.分块查找D.哈希查找答案:C解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就可以在该块内进行插入和删除运算。
由于块内是无序的,故插入和删除比较容易,无需进行大量移动。
如果线性表既要快速查找又经常动态变化,则可采用分块查找。
(4)折半查找有序表(4,6,10,12,20,30,50,70,88,100)。
若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。
A.20,70,30,50B.30,88,70,50C.20,50D.30,88,50答案:A解释:表中共10个元素,第一次取⎣(1+10)/2⎦=5,与第五个元素20比较,58大于20,再取⎣(6+10)/2⎦=8,与第八个元素70比较,依次类推再与30、50比较,最终查找失败。
(5)对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。
A.3B.4C.5D.6答案:B解释:22个记录的有序表,其折半查找的判定树深度为⎣log222⎦+1=5,且该判定树不是满二叉树,即查找失败时至多比较5次,至少比较4次。
(6)折半搜索与二叉排序树的时间性能()。
数据结构第七章参考答案
习题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)分两种情况考虑,见解答。
数据结构第七章的习题答案
数据结构第七章的习题答案数据结构第七章的习题答案数据结构是计算机科学中非常重要的一门学科,它研究如何组织和管理数据以便高效地访问和操作。
第七章是数据结构课程中的一个关键章节,它涵盖了树和二叉树这两个重要的数据结构。
本文将为读者提供第七章习题的详细解答,帮助读者更好地理解和掌握这些概念。
1. 问题:给定一个二叉树,如何判断它是否是二叉搜索树?解答:要判断一个二叉树是否是二叉搜索树,我们可以使用中序遍历的方法。
中序遍历会按照从小到大的顺序访问二叉树中的节点。
所以,如果一个二叉树是二叉搜索树,那么它的中序遍历结果应该是一个有序的序列。
具体实现时,我们可以使用递归或者迭代的方式进行中序遍历,并将遍历的结果保存在一个数组中。
然后,我们检查这个数组是否是有序的即可判断二叉树是否是二叉搜索树。
2. 问题:给定一个二叉树,如何找到它的最大深度?解答:要找到一个二叉树的最大深度,我们可以使用递归的方式。
对于每个节点,它的最大深度等于其左子树和右子树中的最大深度加1。
递归的终止条件是节点为空,此时深度为0。
具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的最大深度。
在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的最大深度,然后取两者中的较大值加1作为当前节点的最大深度。
3. 问题:给定一个二叉树,如何判断它是否是平衡二叉树?解答:要判断一个二叉树是否是平衡二叉树,我们可以使用递归的方式。
对于每个节点,我们分别计算其左子树和右子树的高度差,如果高度差大于1,则该二叉树不是平衡二叉树。
具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的高度。
在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的高度,然后取两者中的较大值加1作为当前节点的高度。
最后,我们判断左子树和右子树的高度差是否大于1,如果大于1,则该二叉树不是平衡二叉树。
(完整word版)数据结构复习题-第7章答案2014-6-16(word文档良心出品)
第7章图一、选择题(每小题1分,共10分)1.一个n个顶点的连通无向图,其边的个数至少为( C )。
A.n+lB.nC.n-lD.2n2.下列哪一种图的邻接矩阵是对称矩阵( B )。
A.有向图B.无向图C.AOV网D.AOE网3.为解决计算机和打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是( B )。
A.栈B.队列C.树D.图4.设无向图的顶点个数为n,则该图最多有( C )条边。
A. n-1B. n(n-1)/2C. n(n+1)/2D. 2n5.无向图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)},由顶点a开始对该图进行深度优先遍历,得到的顶点序列正确的是( D )。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b6.用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。
A.栈B.队列C.树D.图7.以下数据结构中,哪一个是线性结构( D )。
A.广义表B.二叉树C.图D.栈8.下面哪一方法可以判断出一个有向图是否有环(回路)( B )。
A.最小生成树B.拓扑排序C.求最短路径D.求关键路径9.在一个图中,所有顶点的度数之和等于图的边数的( C )倍。
A. 1/2B. 1C. 2D. 410.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。
A. 1/2B. 1C. 2D. 411.有8个顶点无向图最多有( B )条边。
A. 14B. 28C. 56D. 11212.有8个顶点无向连通图最少有( C )条边。
A. 5B. 6C. 7D. 813.有8个顶点有向完全图有( C )条边。
A. 14B. 28C. 56D. 11214.下列说法不正确的是( A )。
ch7复习及习题 new
–邻接矩阵初始化的时间复杂度为O(n2) –输入顶点编号,建立邻接矩阵的时间复杂度为O(e) –输入顶点值,建立邻接矩阵的时间复杂度为O(n*e) –总的时间复杂度为:O(n2+n*e) –适合:有向图、无向图(有向网、无向网)
图的邻接表存储结构小结
• 优点:易找到任一顶点的第一个邻接点和下一个邻接点 • 缺点:难以判定任意两个顶点之间是否有边或弧相连。
也有办法:搜索第i和第j个单链表。不及邻接矩阵方便。
• 时间复杂度的讨论:
–邻接表头结点初始化的时间复杂度为O(n) –输入顶点编号,建立邻接表的时间复杂度为O(n+e) –输入顶点值,建立邻接表的时间复杂度为O(n*e) –总的时间复杂度为:O(n+n*e) –适合:有向图(网)、无向图(网)
判断: 连通网的最小生成树是唯一的。 利用拓扑排序,可检测一个有向图中是否存在环。 一个有向图的邻接表和逆邻接表中结点个数可能不等。 一棵有n个顶点的生成树有且仅有n-1条边。 有n个顶点和n-1条边的无向图是生成树。 如果一个无向图有n个顶点和小于n-1条边,是非连通图。 在n个顶点的无向图中,若边数大于n-1,则该图一定是连通
C. 求图中每一对顶点间最短路径的Floyd算法的时间 复杂度为O(n3)。
D. 求图中每一对顶点间的最短路径也可用Dijkstra算 法实现。
对于下图表示的有向图,可能的拓扑有序序列有_____ 。 A. 123564 B. 152634 C. 561234 D.516234
下列说法中不正确的有________。 A. n个顶点的无向连通图的边数为n(n-1) B. 图的广度优先遍历过程是一个递归过程 C. n个顶点的有向完全图的弧数为n(n-1) D. 有向图的强连通分量是有向图的极大强连通子图
数据结构 习题 第七章 图 答案
第7章图二.判断题部分答案解释如下。
2. 不一定是连通图,可能有若干连通分量 11. 对称矩阵可存储上(下)三角矩阵14.只有有向完全图的邻接矩阵是对称的 16. 邻接矩阵中元素值可以存储权值21. 只有无向连通图才有生成树 22. 最小生成树不唯一,但最小生成树上权值之和相等26. 是自由树,即根结点不确定35. 对有向无环图,拓扑排序成功;否则,图中有环,不能说算法不适合。
42. AOV网是用顶点代表活动,弧表示活动间的优先关系的有向图,叫顶点表示活动的网。
45. 能求出关键路径的AOE网一定是有向无环图46. 只有该关键活动为各关键路径所共有,且减少它尚不能改变关键路径的前提下,才可缩短工期。
48.按着定义,AOE网中关键路径是从“源点”到“汇点”路径长度最长的路径。
自然,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少。
三.填空题1.有n个顶点,n-1条边的无向连通图2.有向图的极大强连通子图3. 生成树9. 2(n-1) 10. N-1 11. n-1 12. n 13. N-1 14. n15. N16. 3 17. 2(N-1) 18. 度出度 19. 第I列非零元素个数 20.n 2e21.(1)查找顶点的邻接点的过程 (2)O(n+e) (3)O(n+e) (4)访问顶点的顺序不同 (5)队列和栈22. 深度优先 23.宽度优先遍历 24.队列25.因未给出存储结构,答案不唯一。
本题按邻接表存储结构,邻接点按字典序排列。
25题(1) 25题(2) 26.普里姆(prim )算法和克鲁斯卡尔(Kruskal )算法 27.克鲁斯卡尔28.边稠密 边稀疏 29. O(eloge ) 边稀疏 30.O(n 2) O(eloge) 31.(1)(V i ,V j )边上的权值 都大的数 (2)1 负值 (3)为负 边32.(1)n-1 (2)普里姆 (3)最小生成树 33.不存在环 34.递增 负值 35.16036.O(n 2) 37. 50,经过中间顶点④ 38. 75 39.O(n+e )40.(1)活动 (2)活动间的优先关系 (3)事件 (4)活动 边上的权代表活动持续时间41.关键路径 42.(1)某项活动以自己为先决条件 (2)荒谬 (3)死循环 43.(1)零 (2)V k 度减1,若V k 入度己减到零,则V k 顶点入栈 (3)环44.(1)p<>nil (2)visited[v]=true (3)p=g[v].firstarc (4)p=p^.nextarc45.(1)g[0].vexdata=v (2)g[j].firstin (3)g[j].firstin (4)g[i].firstout (5)g[i].firstout (6)p^.vexj (7)g[i].firstout (8)p:=p^.nexti (9)p<>nil (10)p^.vexj=j(11)firstadj(g,v 0) (12)not visited[w] (13)nextadj(g,v 0,w)46.(1)0 (2)j (3)i (4)0 (5)indegree[i]==0 (6)[vex][i] (7)k==1 (8)indegree[i]==047.(1)p^.link:=ch[u ].head (2)ch[u ].head:=p (3)top<>0 (4)j:=top (5)top:=ch[j].count(6)t:=t^.link48.(1)V1 V4 V3 V6 V2 V5(尽管图以邻接表为存储结构,但因没规定邻接点的排列,所以结果是不唯一的。
数据结构第7章图习题
第七章图习题1 单项选择题1、图中有关路径的定义是()。
A、由顶点和相邻顶点序偶构成的边所形成的序列B、由不同顶点所形成的序列C、由不同边所形成的序列D、上述定义都不对2、设无向图的顶点个数为n,则该图最多有()条边。
A、n– 1B、n (n– 1)/2C、n (n+1)/2D、n23、一个n个顶点的连通无向图,其边的个数至少为()。
A、n– 1B、nC、n+1D、n log n4、下面结构中最适于表示稀疏无向图的是()。
A、邻接矩阵B、逆邻接表C、邻接多重表D、十字链表5、下列哪一种图的邻接矩阵是对称矩阵?()A、有向图B、无向图C、AOV网D、AOE网6、当一个有N个顶点的图用邻接矩阵A表示时,顶点V i的度是()。
A、第j列所有元素之和B、第i行所有元素之和C、不确定D、第j列所有元素之和+第i行所有元素之和7、下面哪一方法可以判断出一个有向图是否有环(回路)()。
A、深度优先遍历B、拓扑排序C、求最短路径D、求关键路径8、在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为( )。
A、O(n)B、O(n+e)C、O(n2)D、O(n3)9、求解最短路径的Floyd算法的时间复杂度为( )。
A、O(n)B、O(n+e)C、O(n2)D、O(n3)10、已知有向图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,v7B、v1,v3,v2,v6,v4,v5,v7C 、v 1,v ,v 4,v 5,v 2,v 6,v 7D 、v 1,v 2,v 5,v 3,v 4,v 6,v 711、在用邻接表表示图时,拓扑排序算法时间复杂度为( )。
数据结构第7章图习题
第7章图一、单项选择题1.在一个无向图G中,所有顶点的度数之和等于所有边数之和的______倍。
A.l/2 B.1C.2 D.42.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的______倍。
A.l/2 B.1C.2 D.43.一个具有n个顶点的无向图最多包含______条边。
A.n B.n+1C.n-1 D.n(n-1)/24.一个具有n个顶点的无向完全图包含______条边。
A.n(n-l) B.n(n+l)C.n(n-l)/2 D.n(n-l)/25.一个具有n个顶点的有向完全图包含______条边。
A.n(n-1) B.n(n+l)C.n(n-l)/2 D.n(n+l)/26.对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为______。
A.nB.n×nC.n-1 D.(n-l)×(n-l)7.无向图的邻接矩阵是一个______。
A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵8.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则表头向量的大小为______。
A.n B.eC.2n D.2e9.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为______。
A.n B.eC.2n D.2e10.在有向图的邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。
A.入边B.出边C.入边和出边D.不是入边也不是出边11.在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。
A.入边B.出边C.入边和出边D.不是人边也不是出边12.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是______。
A.完全图B.连通图C.有回路D.一棵树13.采用邻接表存储的图的深度优先遍历算法类似于二叉树的______算法。
A.先序遍历B.中序遍历C.后序遍历 D.按层遍历14.采用邻接表存储的图的广度优先遍历算法类似于二叉树的______算法。
数据结构第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、图的广度优先遍历类似于二叉树的。
数据结构课后习题第七章
一、选择题1.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,则T中的叶结点的个数为()。
A.5B.6C.7D.82. 设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数为()。
A.M1B.M1+M2C.M3D.M2+M33.将一棵树T转换为孩子—兄弟链表表示的二叉树H,则T的后跟序遍历是H的()。
A.前序遍历B.中序遍历C.后序遍历4. 设F是一个森林,B是由F变换得的二叉树。
若F中有n个非终端顶点,则B中右指针域为空的结点有()。
A.n-1B.nC.n+1D.n+25.如果2T是由有序树T转换而来的二叉树,那么T中结点的后序遍历序列就是T的()遍历序列。
2A.先序B.中序C.后序D.层次序6. 在一颗度为4的树T 中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T中叶结点的个数是()。
A.41B.42C.82D.122二、判断题1.树形结构中元素之间存在一对多个的关系.()。
2.将一棵树转成二叉树,根结点没有左子树()。
3.树与二叉树是两种不同的树形结构。
()4.对树定义中序遍历和对森林定义后序遍历都无意义()。
5.由树的先序遍历序列和后序遍历序列可以唯一确定该树()。
三、填空题1.树在计算机内的表示方式有(),(),()。
2.已知一棵树度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有()个叶子结点。
3.每一棵树都能唯一的转换为它所对应的二叉树。
若已知一颗二叉树的前序遍历序列是BEFCGDH,中序遍历序列是FEBGCHD,则它的后序遍历序列是()。
设上述二叉树是由某棵树转换而成,则该树的先序遍历序列是()。
4. 先序遍历森林正好等同于按()遍历对应的二叉树,后序遍历森林正好等同于按()遍历对应的二叉树。
5.利用树的孩子兄弟表示法存储,可以将一棵树转换为()。
数据结构与算法(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 单项选择题1.在一个图中,所有顶点的度数之和等于所有边数的____倍。
A. 1/2B. 1C. 2D. 42.任何一个无向连通图的最小生成树。
A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在3.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的____倍。
A. 1/2B. 1C. 2D. 44.一个有n个顶点的无向图最多有____条边。
A. nB. n(n-1)C. n(n-1)/2D. 2n5.具有4个顶点的无向完全图有____条边。
A. 6B. 12C. 16D. 206.具有6个顶点的无向图至少应有____条边才能确保是一个连通图。
A. 5B. 6C. 7D. 87.在一个具有n个顶点的无向图中,要连通全部顶点至少需要____条边。
A. nB. n+1C. n-1D. n/28.对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是____。
A. nB. (n-1)2C. n-1D. n29.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为_①___;所有邻接表中的接点总数是_②___。
①A. n B. n+1 C. n-1 D. n+e②A. e/2 B. e C.2e D. n+e10.已知一个图如图7.1所示,若从顶点a出发按深度搜索法进行遍历,则可能得到的一种顶点序列为__①__;按宽度搜索法进行遍历,则可能得到的一种顶点序列为__②__。
①A. a,b,e,c,d,f B. e,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b②A. a,b,c,e,d,f B. a,b,c,e,f,d C. a,e,b,c,f,d D. a,c,f,d,e,b图 7.1 一个无向图11.已知一有向图的邻接表存储结构如图7.2所示。
图7.2 一个有向图的邻接表存储结构⑴根据有向图的深度优先遍历算法,从顶点v1出发,所得到的顶点序列是____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a
b e
d
c
f
第七章图
一、选择题
1.图中有关路径的定义是()。
A.由顶点和相邻顶点序偶构成的边所形成的序列 B.由不同顶点所形成的序列C.由不同边所形成的序列 D.上述定义都不是
2.设无向图的顶点个数为n,则该图最多有()条边。
A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n2
3.一个n个顶点的连通无向图,其边的个数至少为()。
A.n-1 B.n C.n+1 D.nlogn;
4.n个结点的完全有向图含有边的数目()。
A.n*n B.n(n+1) C.n/2 D.n*(n-l)
5.在一个无向图中,所有顶点的度数之和等于所有边数()倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的()倍。
A.1/2 B.2 C.1 D.4
6.下面结构中最适于表示稀疏无向图的是(),适于表示稀疏有向图的是()。
A.邻接矩阵 B.逆邻接表 C.邻接多重表 D.十字链表 E.邻接表7.下列哪一种图的邻接矩阵是对称矩阵?()
A.有向图 B.无向图 C.AOV网 D.AOE网
8. 设如左图所示,在下面的5个序列中,符合深度优先遍历的序
列有多少?()
a e
b d f
c a c f
d
e b a e d
f c b a e f
d c b a
e
f d b c
A.5个 B.4个 C.3个 D.2个
9.下面哪一方法可以判断出一个有向图是否有环(回路):A.深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径
10. 下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为( 1 ),下面步骤重复n-1次: a:( 2 );b:( 3 );最后:( 4 )。
(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中无回路时,为生成树,否则无解
11. (1). 求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义;
(2). 利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3) ;(图用邻接矩阵表示)
(3). Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路。
上面不正确的是( )。
A .(1),(2),(3)
B .(1)
C .(1),(3)
D .(2),(3)
12.当各边上的权值( )时,BFS 算法可用来解决单源最短路径问题。
A .均相等
B .均互不相等
C .不一定相等
13.已知有向图G=(V,E),其中V={V 1,V 2,V 3,V 4,V 5,V 6,V 7},
E={<V 1,V 2>,<V 1,V 3>,<V 1,V 4>,<V 2,V 5>,<V 3,V 5>,<V 3,V 6>,<V 4,V 6>,<V 5,V 7>,<V 6,V 7>},G 的拓扑序列是( )。
A .V 1,V 3,V 4,V 6,V 2,V 5,V 7
B .V 1,V 3,V 2,V 6,V 4,V 5,V 7
C .V 1,V 3,V 4,V 5,V 2,V 6,V 7
D .V 1,V 2,V 5,V 3,V 4,V 6,V 7
14.一个有向无环图的拓扑排序序列( )是唯一的。
A .一定
B .不一定
15. 下面关于求关键路径的说法不正确的是( )。
A .求关键路径是以拓扑排序为基础的
B .一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同
C .一个事件的最迟开始时间为以该事件为尾的弧的活动最迟开始时间与该活动的持续时间的差
D .关键活动一定位于关键路径上
16.下列关于AOE 网的叙述中,不正确的是( )。
A .关键活动不按期完成就会影响整个工程的完成时间
B .任何一个关键活动提前完成,那么整个工程将会提前完成
C .所有的关键活动提前完成,那么整个工程将会提前完成
D .某些关键活动提前完成,那么整个工程将会提前完成
二、填空题
1.有向图G 的强连通分量是指______。
一个连通图的______是一个极小连通子图。
2. 在有n 个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要______条弧。
3.N 个顶点的连通图的生成树含有______条边。
4.下图中的强连通分量的个数为 个。
5. 在有向图的邻接矩阵表示中,计算第i 个顶点入度的方法是______。
6. 已知一无向图G=(V ,E ),其中V={a,b,c,d,e } E={(a,b),(a,d),(a,c),(d,c),(b,e)}现用某一种图遍历方法从顶点a 开始遍历图,得到的序列为abecd ,则采用的是______遍历方法。
7. 为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需______存放被访问的结点以实现遍历。
8. 按下图所示,求出它的广度优先遍历______和深度优先遍历______。
9. Prim (普里姆)算法适用于求______的网的最小生成树;kruskal (克鲁斯卡尔)算法适用于求______的网的最小生成树。
10.有向图G=(V,E),其中 V(G)={0,1,2,3,4,5},用<a,b,d>三元组表示弧<a,b>
及弧上的权
第4题图 第8题图
1564738258
376
437232846d.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的最短路径长度是______,经过的中间顶点是______。
11.AOV 网中,结点表示______,边表示______。
AOE 网中,结点表示______,边表示
______。
四、 应用题
1.n 个顶点的无向连通图最少有多少条边?n 个顶点的有向连通图最少有多少条边?
2.有向图的邻接表存储如下:(1).画出其邻接矩阵存储;(2).写出图的所有强连通分量;
(3).写出顶点a 到顶点i 的全部简单路径。
3.设G=(V,E)以邻接表存储,如图所示,试给出其对应的邻接矩阵并画出图的深度优先和广度优先生成树。
4.已知一个无向图如下图所示,要求分别用Prim 和Kruskal 算法生成最小树(假设以①为起点,试画出构造过程)。
第4题图 5.请看右边的无向加权图。
从1号节点出发按Prim 算法求其最小生成树,
(即要求写出步骤)。
1
234
5134124Λ12324Λ234Λ5Λ5Λ
6.下图是带权的有向图G 的邻接表表示法,求从结点V1到结点V8的最短路径;
7.对图示的AOE 网络,计算各活动弧的e(a i )和l(a i )的函数值,各事件(顶点)的ve (Vj )和vl (Vj)的函数值,列出各条关键路径。
A
W H G F E αD C B
1
6
3
4275
10
68211691312 11 17
第8题图
8.有一图的邻接矩阵如下,试给出用弗洛伊德算法求各点间最短距离。
A=
⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡∞∞∞∞∞∞0340561020。