普里姆算法Prim求最小生成樹C程序_第1頁
普里姆算法Prim求最小生成樹C程序_第2頁
普里姆算法Prim求最小生成樹C程序_第3頁
普里姆算法Prim求最小生成樹C程序_第4頁
普里姆算法Prim求最小生成樹C程序_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、程序測試用例如下:16 />程序運行過程截圖:源程序清單如下:#include <stdio.h>#define n 6#define MaxNum 10000/*定義一個最大整數(shù)*/*定義鄰接矩陣類型*/typedef int adjmatrixn+1n+1; /*0 號單元沒用 */typedef struct(int fromvex,tovex;int weight;Edge;typedef Edge *EdgeNode;int arcnum;/*邊的個數(shù) */*建立圖的鄰接矩陣*/void CreatMatrix(adjmatrix GA)int i,j,k,e;pr

2、intf("圖中有%d個頂點n",n);for(i=1;i<=n;i+)for(j=1;j<=n;j+)if(i=j)GAij=0;/*對角線的值置為0*/elseGAij=MaxNum;/*其它位置的值置初始化為一個最大整數(shù)*/printf("請輸入邊的個數(shù):");scanf("%d",&arcnum);printf("請輸入邊的信息,按照起點,終點,權(quán)值的形式輸入:n");for(k=1;k<=arcnum;k+)scanf("%d,%d,%d”,&i,&j,

3、&e);/*讀入邊的信息 */GAij=e;GAji=e;/*初始化圖的邊集數(shù)組*/void InitEdge(EdgeNode GE,int m)(int i;for(i=1;i<=m;i+)(GEi.weight=0;/*根據(jù)圖的鄰接矩陣生成圖的邊集數(shù)組*/void GetEdgeSet(adjmatrix GA,EdgeNode GE)( int i,j,k=1;for(i=1;i<=n;i+)(for(j=i+1;j<=n;j+)if(GAij!=0&&GAij!=MaxNum)GEk.fromvex=i;GEk.tovex=j;GEk.wei

4、ght=GAij;k+;/*按升序排列圖的邊集數(shù)組 */void SortEdge(EdgeNode GE,int m)int i,j,k;Edge temp;for(i=1;i<m;i+)k=i;for(j=i+1;j<=m;j+)if(GEk.weight>GEj.weight) k=j; if(k!=i)temp=GEi;GEi=GEk;GEk=temp;/*利用普里姆算法從初始點v出發(fā)求鄰接矩陣表示的圖的最小生成樹*/void Prim(adjmatrix GA,EdgeNode T)(int i,j,k,min,u,m,w;Edge temp;/*給T賦初值,對應(yīng)為

5、 v1依次到其余各頂點的邊*/k=1;for(i=1;i<=n;i+)if(i!=1)Tk.fromvex=1;Tk.tovex=i;Tk.weight=GA1i;k+;/*進(jìn)行n-1次循環(huán),每次求出最小生成樹中的第k條邊*/for(k=1;k<n;k+)min=MaxNum;m=k;for(j=k;j<n;j+)if(Tj.weight<min)min=Tj.weight;m=j;/*把最短邊對調(diào)到k-1下標(biāo)位置*/temp=Tk;Tk=Tm;Tm=temp;/*把新加入最小生成樹T中的頂點序號賦給j*/j=Tk.tovex;/*修改有關(guān)邊,使T中到T外的每一個頂點保

6、持一條到目前為止最短的邊*/for(i=k+1;i<n;i+)(u=Ti.tovex;w=GAju;if(w<Ti.weight)(Ti.weight=w;Ti.fromvex=j;/*輸出邊集數(shù)組的每條邊*/void OutEdge(EdgeNode GE,int e)(int i;printf("按照起點,終點,權(quán)值的形式輸出的最小生成樹為:n”);for(i=1;i<=e;i+)printf("%d,%d,%dn",GEi.fromvex,GEi.tovex,GEi.weight);void main()adjmatrix GA;Edge GEn*(n-1)/2,Tn;CreatMatrix(GA);InitEdge(G

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論