![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
已知带权连通图G(V,E)如下:图的最小生成树(1);去掉图中的权值,图G用邻接矩阵存储。给出从顶点1出
已知带权连通图G(V,E)如下:图的最小生成树(1);去掉图中的权值,图G用邻接矩阵存储。给出从顶点1出发的深度优先搜索序列(2)和广度优先搜索序列(3)。【南京理工大学2005二、6(3分)】
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
已知带权连通图G(V,E)如下:图的最小生成树(1);去掉图中的权值,图G用邻接矩阵存储。给出从顶点1出发的深度优先搜索序列(2)和广度优先搜索序列(3)。【南京理工大学2005二、6(3分)】
在一个有n个顶点的带权连通图中,有条边,则应该选用()算法来求这个图的最小生成树,从而使计算时间较少,
A、Prim
B、Kruskal
点是否在同一个连通分量上,在该算法中选择权值最小的边的原则是该边不能在图中构成(②),它主要适用于(③)。
A、稀疏
B、稠密
C、完全
D、不完全
图的m着色问题描述如下:给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法,使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的m着色问题是对于给定图G和m种颜色,找出所有不同的着色法.
算法设计:对于给定的无向连通图G和m种不同的颜色,计算图的所有不同的着色法.
数据输入:由文件input.txt给出输入数据.第1行有3个正整数n,k和m,表示给定的图G有n个项点和k条边,m种颜色.顶点编号为1,2,...,n接下来的k行中,每行有2个正整数u、v,表示图G的一条边(u,v).
结果输出:将计算的不同的着色方案数输出到文件output.txt.
A.环路复杂性计算连通区法,靠计算有向退化图中的连通区的个数计算环路复杂度
B.判定条件计算法:从退化图中的判定个数计算环路复杂度。V(G)=判定条件个数+1
C.V(G)=m-n+1说明:V(G)为有向图G中环路复杂度;m为图G中弧数;n为图G中节点数
D.V(G)=m-n+p说明:V(G)为有向图G中环路复杂度;m为图G中弧数;n为图G中节点数;根据图论有向图G强连通分量p,添加图G中强连通分量后,p值为2
令D是具有结点v1,v2,v3,v4的有向图,它的矩阵表示如下:
(1)画出相应的有向图D.
(2)求从v1到v1长度为3的回路数以及从v1到v2,v1到v3,v到v4长度是3的通路数.
(3)D是何种连通图?
已知图的邻接表表示的形式说明如下:
define MaxNum 50 //图的最大顶点数
typedef struct node{
int adjvex; //邻接点域
struct node*next; //链指针域
}EdgeNode; //边表结点结构描述
typedef struct{
char vertex; //顶点域
EdgeNode*firstedge;//边表头指针
}VertexNode; //顶点表结点结构描述
typedef struet{
VertexNode adjlist[MaxNum];//邻接表
int n,e; //图中当前的顶点数和边数
}ALGraph; //邻接表结构描述
下列算法输出图G的深度优先生成树(或森林)的边。阅读算法,并在空缺处填入合适的内容,使其成为一个完整的算法。
typedef enum{FALSE,TRUE}Boolean;
Boolean visited[MaxNurn];
void DFSForest(ALGraph*G){
int i;
for(i=0;i<G—>n;i++)visited[i]= (1) ;
for(i=0;i<G—>n;i++)if(!visited[i])DFSTree(G,i);
}
void DFSTree(ALGraph*G,int i){
EdgeNode*p;
visited[i]=TRUE;
p=G—>adjlist[i].firstedge;
while(p!=NULL){
if(!visited[p—>adjvex]){
printf("<%c,%c",G—>adjlist[i].vertex,
G—>adjlist[p—>adjvex].vertex);
(2) ;
}
(3) ;
}
}