- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 图1
第七章 图
一、判断题
1.一个无向图的邻接矩阵中各非零元素之和与图中边的条数相等。( )
2.一个有向图的邻接矩阵中各非零元素之和与图中边的条数相等。( )
3.一个对称矩阵一定对应着一个无向图。( )
4.一个有向图的邻接矩阵一定是一个非对称矩阵。( )
二、选择题
1.在一个图中,所有顶点的度数之和等于所有边数的( )倍。
(A)1/2(B)1(C)2(D)4
2.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。
(A)1/2(B)1(C)2(D)4
3.一个有n个顶点的无向图最多有( )条边。
(A)n (B)n(n-1)(C)n(n-1)/2(D)2n
4.具有4个顶点的无向完全图有( )条边。
(A)6(B)12(C)16(D)20
5.具有6个顶点的无向图至少应有( )条边才能确保是一个连通图。
(A)5(B)6(C)7(D)8
6.在一个具有n个顶点的无向图中,要连通全部顶点至少需要( )条边。
(A)n (B)n+1(C)n-1(D)n/2
7.对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小( )
(A)n (B)(n-1) 2(C)n-1 (D)n2
8.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为( ),所有邻接表中的结点总数是( )。
①(A)n (B)n+1(C)n-1(D)n+e
②(A)e/2(B)e(C)2e (D)n+e
9.采用邻接表存储的图的深度优先遍历算法类似于二叉树的( )。
(A)先序遍历(B)中序遍历(C)后序遍历(D)按层遍历
10.采用邻接表存储的图的宽度优先遍历算法类似于二叉树的( )。
(A)先序遍历(B)中序遍历(C)后序遍历(D)按层遍历
11.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以利用( ).
(A)求关键路径的方法(B)求最短路径的Dijkstm方法
(C)宽度优先遍历算法(D)深度优先遍历算法
12.用Prim算法求下列连通的带权图的最小代价生成树,在算法执行的某刻,已选取的顶点集合U={1,2,5},边的集合TE={(1,2),(2,5)},要选取下一条权值最小的边,应当从( )组中选取。
(A){(1,4),(3,4),(3,5),(2,5)}
(B){(5,4),(5,3),(5,6)}
(C){(1,2),(2,3),(3,5)}
(D){(3,4),(3,5),(4,5),(1,4)}
三、填空题
1.n个顶点的连通图至少_____________条边。
2.在一个无环有向图G中,若存在一条从顶点i到顶点j的弧,则在顶点的拓扑序列中,顶点i与顶点j的先后次序是_________________。
3.在一个无向图的邻接表中,若边表结点的个数是m,则图中边的条数是________________条。
4. 如果从一个顶点出发又回到该顶点,则此路径叫做_______。
5.如果从一无向图的任意顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是____________。
6.若采用邻接表的存储结构,则图的广度优先搜索类似于二叉树的________遍历。
7. 一个连通图的生成树是该图的________连通子图。若这个连通图有n个顶点, 则它的生成树有________条边。
四、算法设计:
1.试在无向图的邻接矩阵和邻接链表上实现如下算法:
(1)往图中插入一个顶点
(2)往图中插入一条边
(3)删去图中某顶点
(4)删去图中某条边
2.下面的伪代码是一个广度优先搜索算法,试以下图中的v0为源点执行该算法,请回答下述问题:
(1)对图中顶点vn+1,它需入队多少次?它被重复访问多少次?
(2)若要避免重复访问同一个顶点的错误,应如何修改此算法?
void BFS(ALGraph *G,int k)
{//以下省略局部变量的说明,visited各分量初值为假
InitQueue(Q);//置空队列
EnQueue(Q,k);//k入队
while(!QueueEmpty(Q)){
i=DeQueue(Q);//vi出队
visited[i]=TRUE;//置访问标记
printf(%c,G-adjlist[i].vertex;//访问vi
for(p=G-adjlist[i].firstedge;p;p=p-next)
//依次搜索vi的邻接点vj(不妨设p-adjvex=j)
if(!visited[p-adjvex])//若vj没有访问过
EnQueue(Q,p-adjvex);//vj入队
}//endofwhile
}//BFS
文档评论(0)