普利姆演算法求最小生成樹(用陣列表示)

2021-06-20 01:26:21 字數 769 閱讀 3133

#include

#include

#include

#include

#include

using namespace std;

//普利姆演算法求最小生成樹

void btree(int *a1,int n,int **a,int q)//a1的第乙個數為要構建最小生成樹的起點,n為要建立的圖的頂點數a1的元素個數為n

}i++;

}while(a1[i]!=-1);

a1[i]=lz;

for( m=0;ma[m][lz]=0;

cout<}

}int buildgraph(int n,int **a)

cout<<"請輸入圖的邊數:">edge;

cout<<"請輸入每條邊的頂點(權值隨機產生):"for(i=0;i

for(i=0;i

cout<}

return edge; }

int main()

int **a;

int **b;

a=new int*[n];

b=new int*[n];

for(i=0;i

e=buildgraph(n,a);

for(i=0;ifor(j=0;jb[i][j]=a[i][j];

cout<<"要構建最小生成樹的起始點:";

cin>>q;

//a1[0]=q;

cout<<"普利姆演算法求最小生成樹"cout

最小生成樹 普利姆 Prim 演算法

概念 將給出的所有點連線起來 即從乙個點可到任意乙個點 且連線路徑之和最小的圖叫最小生成樹。最小生成樹屬於一種樹形結構 樹形結構是一種特殊的圖 或者說是直鏈型結構,因為當n個點相連,且路徑和最短,那麼將它們相連的路一定是n 1條。可以利用參考乙個問題理解最小生成樹,有n個村莊,每個村莊之間距離不同,...

用普里姆演算法求最小生成樹

用普里姆演算法求最小生成樹 include using namespace std 鄰接矩陣的型別定義 define max 10000000 define max vertex num 20 typedef struct mgraph 構造無向聯通網的鄰接矩陣 void createudg am ...

Prim(普利姆)演算法求最小生成樹 O N 2

給定乙個n個點m條邊的無向圖,圖中可能存在重邊和自環,邊權可能為負數。求最小生成樹的樹邊權重之和,如果最小生成樹不存在則輸出impossible。給定一張邊帶權的無向圖g v,e 其中v表示圖中點的集合,e表示圖中邊的集合,n v m e 由v中的全部n個頂點和e中n 1條邊構成的無向連通子圖被稱為...