2017-05-30 4 views
-4

を使用ので、これらは私がバギーコンピュ強連結成分Cプログラミング言語にコード このsemgentに混乱

void dfsloop1(int **g) 
{ 
    int i; 
    int temp=0; 
    for(i=0;i<875714;i++) 
    { 
     temp = f[i]; 
     x[temp-1] = i; 
    } 
    for(i=875714;i>0;i--) 
    { 
     if(!explored[x[i-1]]) 
     { 
      s = i-1; 
      dfs1(g,x[i-1]); 
     } 
    } 
} 

void dfs1(int **g,int i) 
{ 

    explored[i] = 1; 
    leader[i] = s; 
    int j; 
    for(j=0;j<a[i];j++) 
    { 
     if(!explored[(g[i][j]-1)]) 
     { 
      dfs1(g,g[i][j]); 
     } 
    } 
} 

あると仮定二つの関数であり、ここで探求アレイがチェック又はされていないノード/頂点のアカウントを維持されていますチェックされていれば、i番目の頂点がチェックされます。then explored[i-1] = 1 else explored[i-1] = 0,a[i]は、いくつの頂点に格納されますか頂点が接続されています。 たとえば、頂点No.1は2,4,5に接続され、a[0]は3になり、グラフは隣接リストに渡され、私は既に逆のグラフ上でdfsを実行し、その魔法の番号をf [i]に保存しました kosarajuのアルゴリズムを使用して、元のグラフにdfsを実行しようとしています。 x [i] f [i]を昇順で格納しています。例えば、9頂点グラフf[0] = 7,f[1] = 3,f[2] = 1,f[4] = 2,f[5] = 5,f[6] = 9,f[7]=4,f[8] = 6 then x[0] = 2(これは最小のインデックスです)f[i]),x[1] = 4,x[2] = 1等々。

もし私が何かを残したり、何かが不明な場合は私に知らせてください。頂点の おかげ

総数は、私は私はあなたのコードを見

おかげ

+4

[mcve]を入力してください。また参照:[ask]。 –

+2

あなたの質問は何ですか?配列インデックスとして変数を使用する前に、ある範囲チェックを行うのが一般的には良い考えです。 – imqqmi

+0

私はkosarajuのアルゴリズムを使用しています。https://drive.google.com/open?id=0B-iTBQCLcXUabHMxRmRGNmNzY1Uは例です – help

答えて

0

を知っている何かせんでしたので、もし私がstackoverflowの上に新しい午前875714

です。私はあなたの主な機能が実際には便利ではないコードで混乱しているので、あなたはこれを初めて知っていると仮定しています。
2つのもの:
1.ポインタとポインタのポインタを扱っています。
2.ローカル変数/ポインタのために10^5以上の整数メモリを消費しています。

私はポインタについて多くの知識がありません。しかし、競技者として、私はローカルで大きなサイズの配列を宣言している間に "ランタイムエラー"を持っていました。だから、私はあなたの問題がこの2つのセクションにあると思う。ポインタのポインタをグローバルに宣言してみてください。それが役立つかどうかを見てください。

私はあなたにSCCアルゴリズムのリンクを提供しています。
E-MAXX:https://e-maxx-eng.appspot.com/graph/strongly-connected-components.html

とSCCの私の実装:
https://bitbucket.org/techboy_zero/programming-and-software-development/src/035560584ce7ab7e0a3f6ab5ae1406095bd39b62/Programming%20Contest%20Algorithms/Graph%20Theory/Strongly_Connected_Component.cpp

ものの、鉱山は、C++です。ちょうどdfsとkosaraju関数を参照してください。キーワードの理解に問題がある場合は、cplusplus.comで検索してください。メカニズムを理解できない場合は、私に相談してください。

関連する問題