/* eulergraph.c graph.h を同じディレクトリに download して用いよ コンパイル命令と実行命令: gcc eulergraph.c -o eulergraph ./eulergraph K. Shiota 2005.6.10 2007.5.18 RandomEulerianGraph 追加 */ #define MAXORDER 256 #include "graph.h" main() { Graph g; int m,ec[1024],i; // 乱数の初期化 srand(time(NULL)); // ランダムなグラフの場合 // g=EmptyGraph(2); while(!EulerianGraphQ(g)) g=RandomGraph(10,0.3); // ランダムなオイラーグラフの場合 g=RandomEulerianGraph(64,0.1); // 標準入力からグラフを読み込む場合 // g=ReadGraph(); // g=CompleteGraph(7); // 完全グラフ // g=CompleteBipartiteGraph(4,6); // 完全二部グラフ // g=kDimensionalCubicGraph(8); // k-次元立方体グラフ printf("Graph G :\n"); WriteGraph(g); printf("\n"); if(EulerianGraphQ(g)){ m=EulerianCircuit(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"); } }