template<class EdgeType>
void AdjGraph<EdgeType>::DFS(int v)//从某个结点v开始进行深度优先搜索
{
visit(v);
Mark[v]=1;
for(Edge<EdgeType> e=firstEdge(v);isEdge(e);e=nextEdge(e))//访问v邻接到的未被访问的点,如果有则从该点开始深度优先搜索
{
if(Mark[e.end]==0)
DFS(e.end);
}
}
template<class EdgeType>
void AdjGraph<EdgeType>::DFSTraverse()//对图的深度优先搜索(Traverse:横穿,遍历)
{
resetMark();//重置所有顶点标记
for(int v=0;v<vertexNum;v++)
{
if(Mark[v]==0)
DFS(v);
}
}
void AdjGraph<EdgeType>::DFS(int v)//从某个结点v开始进行深度优先搜索
{
visit(v);
Mark[v]=1;
for(Edge<EdgeType> e=firstEdge(v);isEdge(e);e=nextEdge(e))//访问v邻接到的未被访问的点,如果有则从该点开始深度优先搜索
{
if(Mark[e.end]==0)
DFS(e.end);
}
}
template<class EdgeType>
void AdjGraph<EdgeType>::DFSTraverse()//对图的深度优先搜索(Traverse:横穿,遍历)
{
resetMark();//重置所有顶点标记
for(int v=0;v<vertexNum;v++)
{
if(Mark[v]==0)
DFS(v);
}
}