怎样得到它的逆拓扑序列
以V0为源点,怎样得出用DFS搜索上图得到的逆拓扑序列...
请问一下......我知道上图的DFS序列为v0,v2,v3,v4,v1,v5,v6.....
但怎样得到它的逆拓扑序列呢....
void topsortDFS(Graph& g)
{
for(int i=0;i<G.NodeNum();++i)
{
G.Node[i] .skip =false;
}
T* result=new T[G.NodeNum()];
int tag=0;
for(int j=0;j<Nodenum;++j)
{
if(G.Node[j]==false)
Sort(g,j,T*result,int &tag);
}
for(int i=G.NodeNum()-1,i>=0;--i)
{
visit(result[i]);
}
}
void Sort(Graph& g,int v,T* result,int &tag)
{
G.Node[v].skip=true;
for(Edge e=G.firstEdge(v);G.IsEdge(e);e=NextEdge(e))
{
if(G.Node[G.ToVetex(e)]==false)
{
Sort(G,G.ToVetex(e),result,tag);
}
}
result[tag++]=G.Node[v];
}
ToVetex(),返回后面边参数的终端
NextEdge()返回和后面参数一样起点的线段
firstEdge,返回该起点第一个边
其中result[tag++]=G.Node[v];
你要是放到该函数前面,就是前续,后面就是逆的了
以后再不打程序了