寻找一个技术度的节点作为起点,然后进行dfs,输出遍历的结果,只是一种对图的简单操作,而且只能判断比较特殊的欧拉道路
#include<iostream>
#include<stack>
using namespace std;
stack<string> path;
int graph[][4]={{0,1,2,1},{1,0,0,0},{2,0,0,1},{1,0,1,0}};
int n=4;
void dfs(int u)
{
for(int v=0;v<n;v++)
{
if(graph[u][v]>0)
{
graph[u][v]--;
graph[v][u]--;
string str="->";
str=(char)('A'+u)+str+(char)('A'+v);
cout<<str<<endl;
dfs(v);
}
}
}
int main()
{
int t;
//寻找一个奇数度为起点
for(int i=0;i<n;i++)
{
t=0;
for(int j=0;j<n;j++)
{
t+=graph[i][j];
}
if(t%2!=0)
{
dfs(i);
break;
}
}
return 0;
}