/* eulerdigraph.c graph.h, digraph.h を同じディレクトリに download して用いよ コンパイル命令と実行命令: gcc eulerdigraph.c -o eulerdigraph ./eulerdigraph K. Shiota 2005.6.13 */ #define MAXORDER 64 #include "graph.h" #include "digraph.h" main() { Graph g; int m,ec[1024],i; // 乱数の初期化 srand(time(NULL)); // ランダムなグラフの場合 g=EmptyGraph(2); while(!EulerianDiGraphQ(g)) g=RandomDiGraph(8,0.3); // 標準入力からグラフを読み込む場合 // g=ReadGraph(); // g=CompleteGraph(10); // 完全グラフ // g=CompleteBipartiteGraph(5,7); // 完全二部グラフ // g=kDimensionalCubicGraph(4); // k-次元立方体グラフ printf("Graph G :\n"); WriteGraph(g); printf("\n"); if(EulerianDiGraphQ(g)){ m=EulerianCircuitDirected(g,ec); printf("Eulerian Circuit :\n"); for(i=0;i<=m;i++){ if(i!=0) printf(" -> "); printf("%d",ec[i]); } printf("\n"); } else{ printf("G is not Eulerian.\n"); } }