题目:欧拉回路。
分析:简单题、搜索。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int G[6][6] = {0};
int save[9];
void dfs( int s, int n, int d, int e )
{
if ( d == e ) {
for ( int i = 0 ; i < e ; ++ i )
printf("%d",save[i]);
printf("%d\n",s);
return;
}
save[d] = s;
for ( int i = 1 ; i <= n ; ++ i )
if ( G[s][i] ) {
G[s][i] = 0;
G[i][s] = 0;
dfs( i, n, d+1, e );
G[s][i] = 1;
G[i][s] = 1;
}
}
int main()
{
G[1][2] = G[2][1] = 1;
G[1][3] = G[3][1] = 1;
G[1][5] = G[5][1] = 1;
G[2][3] = G[3][2] = 1;
G[2][5] = G[5][2] = 1;
G[3][4] = G[4][3] = 1;
G[3][5] = G[5][3] = 1;
G[4][5] = G[5][4] = 1;
dfs( 1, 5, 0, 8 );
return 0;
}