首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
admin
2013-07-12
96
问题
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
选项
答案
解法一:采用深度优先遍历方法。算法如下: # define MAX_VERTEX NUM 20 //最大顶点数为20 typedef struct ArcNode{ //边表结点 int adjvex; //邻接点域 struct ArcNode*nextarc; //指向下一个邻接点的指针域 //若要表示边上信息,则应增加一个数据域info )ArcNode; tvpedef struct VNode{ //顶点表结点 VertexType data: //顶点域 ArcNode *firstarc; //边表头指针 }VNode,AdjList[MAX VERTEX—NUM]; //AdjList是邻接表类型 typedef struct{ AdjList adjlist; //邻接表 int veXnulTl.arcnum; //顶点数和边数 }ALGraph: //ALGraph是以邻接表方式存储的图类型 void DFS(ALGraph G,int V){ ArcNode*P: visitedrv]=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]==O){ DFS(G,i); //调用DFS算法 num++: } return(num); } 解法二:采用广度优先遍历方法。算法如下: void BFS(ALGraph G.int V){ ArcNode*P; int Qu[MAX VERTEX_NUM2,front=0,rear=0; //定义循环队列并初始化 int w,i; for(i:0;i
n;i++)visited[i]=0; //访问标志数组初始化 Drinf(“2%d”,v); //输出被访问顶点的编号 visitedrv]=1; //置已访问标记 rear=(rear+1)%MAX_VERTEX_NUM; QuErear]=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]==O){ BFS(G,i); //调用BFS算法 num++: return(num); }
解析
本题主要考查图的遍历的应用。对于无向图来说,深度优先遍历或者是广度优先遍历,若无向图是连通图,则一次遍历能够访问到图中的所有顶点,但若无向图是非连通图,则只能访问到初始点所在连通分量中的所有顶点,其他连通分量中的顶点是不可能访问到的。为此需要从其他每个连通分量中选择初始点,分别进行遍历,才能够访问到图中的所有顶点。因为在选择初始点的同时加上计数器,最后计数器的值即为连通分量个数。
转载请注明原文地址:https://kaotiyun.com/show/1rxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
利玛窦与李之藻合译的()一书,介绍了西方数学中的算术知识,尤为可贵的是,其传入了中国所没有的西洋笔算法。
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
论述20世纪30年代中国社会关于全盘西化和“本土文化”之争。(吉林大学2013年历史学基础真题)
下列关于柏拉图的叙述不正确的是()。
周王室的两大官僚系统是()。
1837年倡导用无机肥料来补充土壤中耗去的化学元素的化学家是()。
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
隋在统一全国的过程中,平定江南是一个重要的部分,帮助完成岭南一带平定的是()
“二战期间,美国研制了原子弹并用于实践;1946年美国投入的第一台电子计算机最初是用于计算炮弹弹道;德国人研制成功的远程液体火箭是用于空袭英国的。”以上史实说明()。
1854年,英国外交大臣致函英国驻华公使说:“为了适应外商对农业产品已增加了的需要,新的贸易市场尚待开辟。”1856年,法国外长则指令法国驻华代办强调“商业关系的推广”,并强调“这是一个关系到至高无上权益的问题”。这说明()。
随机试题
取大黄泄热通便之功的方剂是
2006年3月1日,李某去某商场购物时,将自己携带的两件物品存放在存包处,当天取物时却只取到一件。存包员否认李某存了两件物品,双方争议未果,李某拟起诉至人民法院。根据《民法通则》的规定,李某向人民法院提起民事诉讼的有效期间是()。
具有内酰胺结构,在加热条件下皂化开环生成溶于水的羧酸盐而进行分离的是
在初始地籍调查过程中直接形成的文字、图、表等一系列成果的总称是指()资料。
高级路面的特点是路面强度高、刚度大、()。
随着办公现代化的发展,()越来越受到秘书和办公室工作者的青睐。
①古圣先贤,从董仲舒到朱熹,一直到康有为,他们虽然也觉得王道政治只是一种理想,但是对他们来说.这个理想是基本共识的,是天经地义的②这个前提决定了我们谈论王道、天下,主要是谈论理想政治,理想秩序③但是对我们今天来说.王道政治的重要性是必须自我证明的④那
对下列二叉树进行中序遍历的结果是()。
设窗体中有一个文本框Text1,若在程序中执行了Text1.SetFocus,则触发
Isentinvitationsto80people,______havereplied.
最新回复
(
0
)