首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
admin
2012-06-26
70
问题
设计一个算法,求无向图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_NUM3; //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 ConnNuml(ALGraph G){ //求图G的连通分量 int i,num=0; for(i=0;i
n;i++) visited[i]=0; for(i=0;i
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
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
n;i++) visited[i]=0; for(i=0;i
n;i++) if(visited[i]==0){ BFS(G,i); //调用BFS算法 num++: } return(num); }
解析
本题主要考查图的遍历的应用。对于无向图来说,深度优先遍历或者是广度优先遍历,若无向图是连通图,则一次遍历能够访问到图中的所有顶点,但若无向图是非连通图,则只能访问到初始点所在连通分量中的所有顶点,其他连通分量中的顶点是不可能访问到的。为此需要从其他每个连通分量中选择初始点,分别进行遍历,才能够访问到图中的所有顶点。因为在选择初始点的同时加上计数器,最后计数器的值即为连通分量个数。
转载请注明原文地址:https://kaotiyun.com/show/zfxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
19世纪三四十年代,欧洲无产阶级作为独立的政治力量登上政治历史舞台的历史条件包括()。①资本主义制度的全面确立②科学社会主义诞生③资本主义经济危机的发生④工业革命使社会日益分裂为两大阵营
《马关条约》中最能体现列强对华侵略进入新阶段的内容是()。
利玛窦与李之藻合译的()一书,介绍了西方数学中的算术知识,尤为可贵的是,其传入了中国所没有的西洋笔算法。
导致“八一九”事件的直接原因是()。
希拉克略王朝的军区制改革的内容和意义。
论述1931—1941年英美远东政策的变化及对中国的影响。(2014年统考真题)
关于垄断组织的积极作用,不正确的说法是()。
战时共产主义政策中对后来的工农联盟最能构成威胁的是()。
如图所示一台路由器连接3个以太网。请根据图中给出的参数回答如下问题:(1)该TCP/IP网络使用的是哪一类IP地址。(2)写出该网络划分子网后所采用的子网掩码。(3)系统管理员将计算机D和E按照图中所示结构
随机试题
具有温肺化饮功效的药物有
A、Learntoberespectfulinahierarchicalorganization.B、Learnnewwaysofrelatingandworkingtogether.C、Followcloselythe
简述网络营销的特点有那些。
A.血管升压素B.醛同酮C.肾上腺素D.血管紧张素Ⅱ调节远曲小管、集合管对水重吸收的主要因素是
筹建中的天恩股份有限公司聘请法律顾问对如下筹建计划提出法律意见,其中()符合我国法律规定。
李某拟移民国外,遂与周某订立合同出售其房屋,并约定李某在周某付清房款之后为周某办理房屋所有权变更登记手续。一个月后周某付清了房款,但李某取消了移民计划,并向周某表示不再为其办理房屋所有权变更登记手续。对此下列表述中正确的是()。
豆类及豆类制品摄入量是()。
()是以工作说明书、工作规范等作为员工任职要求的依据,将其和员工平时工作中的表现进行对比寻找差距的方法。
根据下表所提供的信息回答问题。一个国家或地区的国际竞争力排名,是通过其经济绩效、政府效率、企业效率和基础设施四个要素的排名综合而成的。根据瑞士洛桑管理学院的《全球竞争力年鉴》(2003年、2004年),选择六个国家与我国的国际竞争力进行比较,如下
设456都是来自正态总体N(μ,σ2)的容量为n的两个相互独立的样本均值,试确定n,使得两个样本均值之差的绝对值超过σ的概率大约为0.01.
最新回复
(
0
)