问一个关于图的深度优先遍历算法实现的问题

voidMGraph::DFSTraverse(intv){cout<<vertex[v];visited[v]=1;for(j=0;j<vertexNum;j++)if... void MGraph::DFSTraverse(int v)
{
cout<<vertex[v];visited[v]=1;
for(j=0;j<vertexNum;j++)
if(arc[v][j]==1&&visited[j]==0)DFSTraverse(j);
}
这是书上的深度优先遍历算法的代码,不知道有错么?
可是我自己动手解这个算法的时候这个j的变量感觉很有问题啊,是我理解的问题么?
求大神解答
展开
 我来答
zoomx
2013-12-07 · 超过21用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:44.7万
展开全部
不知道你看的是什么书,代码也只能猜测一下:

//遍历vertex
void MGraph::DFSTraverse(int v)
{
// 输出当前vertex, 并设为已遍历
cout<<vertex[v];visited[v]=1;

// 对所有vertex进行测试
for(j=0;j<vertexNum;j++)
// 如果vertex[j] 和当前的vertex有边相连,并且没有访问过,递归遍历vertex[j]
if(arc[v][j]==1&&visited[j]==0)DFSTraverse(j);
}

从递归关系来看,就是从一个vertex,找和它有边相连的vertex进行遍历,因此,是深度优先遍历。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式