拓扑排序
Realize topological sort with adjacent matrix:
#include<iostream>
#include<vector>
using namespace std;
int main(int argc,char **argv)
{
int adjacent[7][7]={{0,1,1,1,0,0,0},
{0,0,0,1,1,0,0},
{0,0,0,0,0,1,0},
{0,0,1,0,0,1,1},
{0,0,0,1,0,0,1},
{0,0,0,0,0,0,0},
{0,0,0,0,0,1,0}};
vector<int> res;
int i=0;
int k=0;
for(;k<7;k++)
{
if(adjacent[0][k]==2)
continue;
int j=0;
for(;j<7;j++)
if(adjacent[j][k]==1)
break;
if(j==7)
{
res.push_back(k+1);
for(int q=0;q<7;q++)
adjacent[k][q]=0;
adjacent[0][k]=2;
if(res.size()==7)
{
vector<int>::iterator iter=res.begin();
for(;iter!=res.end();++iter)
cout<<*iter<<" ";
cout<<endl;
return 0;
}
k=0;
}
}
if(k==7)
{
cout<<"the graph include circute route!"<<endl;
return 0;
}
}
本文来自博客园,作者:张朝阳讲go语言,转载请注明原文链接:https://www.cnblogs.com/zhangchaoyang/articles/1841869.html

浙公网安备 33010602011771号