扫码加入训练营

牢记核心词

学习得礼盒

计算机考研:数据结构常用算法精析(7)

2013-12-11 14:39:50来源:新东方在线编辑

  2.利用拓扑排序

  在拓扑排序中,有一变量count记录访问到的结点数。在算法结束前判断一下

  if(count

  求图的连通分量的个数

  void Count(AdjList g) //求图中连通分量的个数

  { int k=0 ; visited[1...n]=0;

  for (i=1;i<=g.vexnum;i++ )

  if (visited[i]==0)

  { printf ("第%d个连通分量:\n",++k);

  dfs(i);

  }//if

  }//Count

  void dfs(AdjList g,vextype v)

  { visited[v]=1;

  printf ( “%3d”,v); //输出连通分量的顶点。

  p=g[v].firstarc;

  while (p!=null)

  {

  if(visited[p->adjvex]==0)

  dfs(p->adjvex);

  p=p->next;

  }//while

  }// dfs

  算法中visited[]数组是全程变量,每个连通分量的顶点集按遍历顺序输出。这里设顶点信息就是顶点编号,否则应取其g[i].vertex分量输出。

  第7章节有关数据结构算法,上文中为大家作了分析,希望考生对于这些算法能够熟记于心,方便考试的应用和日后的实际操作,预祝大家都能够取得好成绩,加油!



考研公开课小程序

本文关键字: 计算机 考研 数据结构

考研英语核心词汇营

背词+听课+练习+督学,学习得礼盒

更多资料
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

考研资料大礼包
近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料