時代の実現可能性 - オイラーとハミルトニアン

時代の実現可能性 - オイラーとハミルトニアン

 

1.オイラー

  オイラーサイクル:Gは、彼がGを通じて一度エッジを発生した場合、回路をオイラーと呼ばれ、回路図です。オイラーは、出発点は、結局、図からであり、一方の側のみの後、最終的にパスの始点に戻されます。

1つの#include <アルゴリズム>
 2の#include <iostreamの>
 3の#include <CStringの>
 4の#include <cstdioを>
 5の#include <cmath>
 6の#include <地図>
 7  使って 名前空間STD。
8  CONST  INT MAXV = 110 9  のconst  int型 MAXE = 5010// 可能的最大值
10  
11  構造体のeNode
 12  {
 13      INT に、
14      INT 次。
15  }。
16 eノードedegs [MAXE]。
17  int型ヘッド[MAXV]、TNT。
18  ボイドのinit()
 19  {
 20      のmemset(ヘッド、 - 1はsizeof (ヘッド))。
21      TNT = - 1 22  }
 23  空隙 Add_ENode(INT A、INT B)
 24  {
 25      ++ TNT。
26      edegs [TNT] .TO = B。
27      edegs [TNT] .Next = ヘッド[A]。
28      ヘッド[A] = TNT。
29      ++ TNT。
30      edegs [TNT] .TO = 31      edegs [TNT] .Next = ヘッド[B]。
32      ヘッド[B] = TNT。
33  }
 34  
35  INT oLaData [MAXE]。
36  INT oLa_cnt。
37  ブール訪問[MAXE]。
38  ボイド oLa_dfs(INT U)
 39  {
 40      のためのint型 K =ヘッド[U];!K = - 1 ; K = edegs [K] .Next)
 41      {
 42          であれば(![k]を訪問)
 43          {
 44             訪問[K] = 1 ;    // タグが現在のエッジを経た
45              訪問[K ^ 1 ] = 1 ;  
 46である             (edegs [K] .TO)oLa_dfs;  
 47              oLaData [oLa_cnt ++] = K;   // 後戻り工程記録面
48          }
 49      }
 50  }
 51が 
52であり 、INT ()主
 53は 、{
 54は、     INT ; N-
 55      / * 内蔵図* / 
56      / * オイラーがあるか否かを判断する* / 
57である      oLa_dfs(1 );
 58      リターン 0 ;
59 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/Amaris-diana/p/11279028.html