试设计一个算法,判断一个有向无环图G中是否存在这样的顶点,该顶点到其他任意顶点都有一条有向路径。有向图G以邻接表的形式存储。 根据设计思想,采用C、C++语言描述算法,关键之处给出注释。

admin2017-04-28  31

问题 试设计一个算法,判断一个有向无环图G中是否存在这样的顶点,该顶点到其他任意顶点都有一条有向路径。有向图G以邻接表的形式存储。
根据设计思想,采用C、C++语言描述算法,关键之处给出注释。

选项

答案算法实现如下: 方法一:广度优先遍历(使用队列) int rbfs (ADJLIST g,int vi) int i, count, yes; yes=0; courit=1; queue Q; for(int i=O;i<n,i++)visited[i]=0;11初始化访问标记数组 enqueue (vi,Q) ; visited [vi]=1; //初始化 while (!empty {Q) && ! yes) { int w—Q.front; p=g[w]. firstarc; while (p!=NULL&&!yes) { w=p—>adjdata; if (visited [w] =0) { visited [w] =1; enqueue (w, Q) ; } else p=p—>next; }

解析
转载请注明原文地址:https://kaotiyun.com/show/PJRi777K
0

最新回复(0)