首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
admin
2013-12-31
63
问题
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
选项
答案
解法一:采用深度优先遍历方法。算法如下: #define MAX_VERTEX_NUM 20 //最大顶点数为20 typedef struct ArcNode{ //边表结点 int adjvex; //邻接点域 struct ArcNode*nextarc; //指向下一个邻接点的指针域 //若要表示边上信息,则应增加一个数据域info }ArcNode; typedef struct VNode{ //顶点表结点 VertexType data; //顶点域 ArcNode *firstarc; //边表头指针 }VNode,AdjList[MAX_VERTEX_NUM]; //AdjList是邻接表类型 typedef struct{ AdjList adjlist; //邻接表 int vexnum,arcnum; //顶点数和边数 }ALGraph; //ALGraph是以邻接表方式存储的图类型 void DFS(ALGraph G,int V){ ArcNode*p; visited[v]=1: //置已访问标记 prinf("%d",v); //输出被访问顶点的编号 P=G->adjlist[v].firstarc; //p指向顶点v的第一条边的终结点 while(p!=NULL){ if(visited[p->adjvex]==0) //若p->adjvex顶点未访问,递归访问它 DFS(G,P-> adjvex); p=p-> nextarc; //p指向顶点V的下一条边的终结点 } } int ConnNum1(ALGraph G){ //求图G的连通分量 int i,num=0; for(i=0;i<G->n;i++) visited[i]=0; for(i=0;i<G->n;i++) if(visited[i]==0){ DFS(G,i); //调用DFS算法 num++: } return(num); } 解法二:采用广度优先遍历方法。算法如下: void BFS(ALGraph G,int v){ ArcNode*p; int Qu[MAX_VERTEX_NUM],front=0,rear=0; //定义循环队列并初始化 int W,i; for(i:0;i<G->n;i++)visited[i]=0; //访问标志数组初始化 prinf("2%d",v); //输出被访问顶点的编号 visited[v]=1; //置已访问标记 rear=(rear+1)%MAX_VERTEX_NUM; Qu[rear]=v: //v入队 while(front!=rear){ //若队列不空时循环 front=(front+1)%MAX_VERTEX_NUM; w=Qu[front]; //出队并赋予W p=G->adjlist[w].firstarc; //找与顶点W邻接的第一个顶点 while(p!=NULL){ if(visited[p->adjvex]==0){ //若当前邻接顶点未被访问 printf("%2d",p-> adjvex); //访问相邻顶点 visited[p_>adjvex]=1; //置该顶点已被访问的标志 rear=(rear+1)%MAX_VERTEX_NUM! //该顶点人队 Qu[rear]=p->adjvex; } p=p->nextarc; //找下一个邻接顶点 } } printf("\n"); } int ConnNum2(ALGraph G){ //求图G的连通分量 int i,num=0; for(i=0;i<G->n;i++) visited[i]=0; for(i=0;i<G->n;i++) if(visited[i]==0){ BFS(G,i); //调用BFS算法 num++: } return(num); }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/5vxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
李鸿章奏请在天津设立的北洋水师学堂的落成时间是()。
夷陵之战的交战双方是()
波兰三次被瓜分的时间是()
对三国鼎立到隋朝重新统一全国这段历史时期的政局,叙述正确的是()。①只有西晋有过短暂的统一②大多数时间是多个政权分立、南北对峙的复杂政局③西晋、北魏、东晋都有过短暂的统一④除三国分立以外,其他时间基本上处于统
()自幼随父在西域成长,深悉西域道里、风土和政治情况。他编著的《西域记》一书,是范晔撰《后汉书.西域传》的重要根据。
下列选项中,达成于1913年进行的西姆拉会议期间的有()①《西姆拉条约》②划定“麦克马洪线”③《中英会议藏印条约》④《中英续订藏印条约》
在捍卫和传播生物进化论方面做出了贡献的是()。
在欧盟发展历史上,促使欧盟正式成立的文件是()。
在下列查找的方法中,平均查找长度与结点个数n无关的查找方法是()。
数据链路层采用选择重传协议(SR)传输数据,发送方已发送了0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是____。
随机试题
不受气候影响的地下水是()。
女性对秘书职业的适应性除了女性的一般特征比较适应秘书工作之外,另一主要原因是【】
拒绝句号冯骥才人的一生总是在不断追求完美的过程中实现自我价值。只有不断努力地把句号变为逗号,不断地追求自己的目标,完美的
正常成年人(30~40岁)的骨量
甲房地产公司与乙国有工业公司签订《合作协议》,在乙公司原有的仓库用地上开发商品房。双方约定,共同成立“玫园置业有限公司”(以下简称“玫园公司”)。甲公司投入开发资金,乙公司负责将该土地上原有的划拨土地使用权转变为出让土地使用权,然后将出让土地使用权作为出资
擅自开采煤矿的,煤矿安全监察人员责令立即停止作业,拒不停止的,由煤矿安全监察机构决定()。
某车间某年上半年的机电设备大修理成本:机械设备Cj1为300元/R,电气设备Cj2为400元/R。下半年机电设备大修理成本:机械设备Cb1为250元/只,电气设备Cb2为325元/R。完成的修理复杂系数:机械设备R1为70,电气设备R2为85。试对机电设备
下列关于普通合伙企业事务执行的表述中,符合《合伙企业法》规定的有()。(2010年)
假设A是n阶方阵,其秩r<n.那么在A的n个行向量中
He______thebushesaroundhishousecarefullywithD.D.T.everyevening.
最新回复
(
0
)