プリムのアルゴリズム埔里ムー

埔里ムーコアアルゴリズムは、ツリーに追加小さな頂点の重みを達するために、このツリーの残りの頂点に続く、ツリーの頂点に頂点から開始されます

このアルゴリズムを実行することは低コスト[]は値0は頂点がツリー内に既にあることを示すツリー図を格納するための各頂点配列、の重量に対して、N-1の添加が完了し実行するために必要

さらに提供adjvex []配列は、ツリーの各頂点「先行」ノードを格納するために使用され、すなわち親ノード

@ 埔里ムーアルゴリズムは順次最小重量ツリーの頂点に達し、残りの頂点を追加し、ツリー形式の頂点から開始 
する#include <stdio.hに> //は、低コストで[]アレイをするために使用される二つの補助配列を含みます現在の重み記憶に先立って、ツリーの各頂点図
 //                  adjvex []木接触の各頂点の頂点の配列を格納するための「前駆体」に対応する空隙(MGrap G)プリム// 図ゼロ行列ストレージソリューションと便利重量頂点は{
     int型I、分、K;
     INT 低コスト[G.vexnum];
     INT adjvex [G.vexnum]; のための(I = 0 ;私はG.vexnum <; ++ I)の{ 
        低コスト[I] = G.edges [ 0 ] [I]; // []配列格納それぞれの重みを初期化ソース低コスト図現在の頂点 
        adjvexを[I] = 0 ;               //




    初期adjvex []配列は、ツリー内の次のアクセスの頂点は、必ずしも頂点番号0前駆
    } 

    ため(Jは= 1。 ; J <G.vexnum; Jを++){    // ここでは、このためのフォーカスループをN-1回を行う、すなわち、N-1、我々は単にエッジの追加 
        分= 65535 ;             // 毎サイクルの開始は、分の値をリセット
        するための(I = 0 ; IはG.vexnumを<; Iは++){       // 低コストは[]配列は、次達する最小重量ツリーの頂点を見つけるためにスキャン
            IF(低コスト[I] =!0 &&低コスト[I] < {分) = [I]低コスト、
                K = I; 
            } 
        } 
        低コスト[K] = 0 ;                // これは、ツリーのツリーの頂点の重みに追加されるタグ・アレイの低コスト[]の値が0である、最小 
        のprintf(%のD - > D%、adjvex [K]、K);   // 新たを印刷木の側に選択した頂点
         //は低コスト[]アレイを更新し、[]配列adjvex 
        ため(I = 0 ;私はG.vexnumを<++ {I)
             IF(低コスト[I] =!0 &&低コスト[I]を> G.edges [K] [I]){ 
                低コスト[I] = G.vexnum [K] [I]; 
                adjvex [I] = K; 
            } 
        }
    

 

おすすめ

転載: www.cnblogs.com/strolling-leisurely/p/11374698.html