パスと最小スパニングツリートラバーサルについて

スパニングツリーのために、我々は、プロセスの一の側の縁が増加する生成ので、我々は、エッジトラバーサルを構築するパス[]を使用し、その後、我々は側に選択したものを記録する[]のパスの配列を作成する必要があります。

レコードセクション:

ボイドクラスカル()
{ 
    int型 NUM = 0、J = 0 以下のためにint型 i = 1 ; iは= N <; ++ I)F [I] = I。
    以下のためにint型 iは= 1 ; iが<= M + I)
    { 
        int型 EU =検索(エッジを[I] から)。
        INT EV = (エッジ[I] .TO)を見つけます。
        もし(EU ^ EV)
        { 
            [EU] F = EV。
            パス[ ++ J = エッジ[I]。
            NUM ++ ; 
        }
        もし(NUM == N- 1破ります
    } 
    最終 = J。
}

トラバースセクション:

以下のためにint型 i = 1 ; iは=最終<; ++ I)addedge(パス[I] からパス[I] .TO、)、addedge(パス[I] .TO、経路[I] から)。
    VIS [ 1 ] = 1 
    get_col(11 )。






ボイド get_col(int型のx、int型のC)
{ 
    COL [X] =のC。
    int型 ; I iが= I =ヘッド[X] _EDGE [i]は.next)
         場合(!VIS [_EDGE [I] .TO])
        { 
            VIS [_EDGE [I] .TO] = 1
            get_col(_EDGE [I] .TO、C ^ 1 )。
        } 
} 

ボイド addedge(INT  からINT に)
{ 
    [_EDGE ++ num_edge]。= から
    【num_edge] .TO _EDGE = であり; 
    【num_edge] .next _EDGE [=ヘッドから]。
    【ヘッドから =] num_edge。
}

 

おすすめ

転載: www.cnblogs.com/-hhs/p/11225154.html