| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:图的深度优先遍历
只看楼主 加入收藏
随云
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2005-3-16
结帖率:100%
收藏
 问题点数:0 回复次数:1 
图的深度优先遍历
void visit(AdjMatrix *G,int v0)
{
 printf("%d ",G->vertex[v0]);
}  
int FirstAdjVertex(AdjMatrix G,int v0)
{   int i,w;
    for (i=1;i<=G.vexnum;i++)
    { if((G.arcs[v0][i]!=0) && visited[i]==0){
  w=i;
  break;
    }
 else{
    w=0;
    break;
    }
}
 return w;
}
int NextAdjVertex(AdjMatrix G,int v0,int w){
  int t;
  t=FirstAdjVertex(G,w);
  return t;
 
}
void TraverseGraph(AdjMatrix G){
 int vi;
 void DepthFirstSearch(AdjMatrix,int);
 for (vi=1;vi<=G.vexnum;vi++)
    visited[vi]=0;
 for (vi=1;vi<=G.vexnum;vi++)
 { if (!visited[vi])
   DepthFirstSearch(G,vi);
   printf("%d",G.vertex[vi]);
 }
 
}
void DepthFirstSearch(AdjMatrix *G,int v0)
{   void visit(AdjMatrix,int);
 int j;
 visit(*G,v0);
    int w;
 visited[v0]=1;
    w=FirstAdjVertex(*G,v0);
    while (w!=-1)
    { if (!visited[w])
      DepthFirstSearch(G,w);
 w=NextAdjVertex(*G,v0,w);
    }
}
请问如何输出已经遍历过的节点,怎么加代码,急!!!!!!!!请高手指点
搜索更多相关主题的帖子: int 遍历 深度 AdjMatrix void 
2007-12-06 19:25
随云
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2005-3-16
收藏
得分:0 
已经解决

2007-12-08 11:13
快速回复:图的深度优先遍历
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013961 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved