最小生成樹

2021-09-29 02:20:56 字數 2261 閱讀 8961

最小生成樹的各種演算法

子圖:從原圖中選中一些頂點和邊組成的圖.

生成子圖:選中一些邊和所有頂點組成的圖.

生成樹:正好是一棵樹的生成子圖.

最小生成樹:權值之和最小的生成樹.

prim演算法

複雜度:o(n^2) $$

#include

using namespace std;

const int inf = 1e4;

const int n = 100;

bool s[n];

int closest[n]; //儲存u集合中離u-v集合中最近的點

int lowcost[n]; //最近點間的距離

void prim(int n,int u0,int c[n][n])

else

lowcost[i]=0;

}for(i=1;i<=n;i++)

cout<<「輸入任一節點u0:」<>u0;

prim(n,u0,c);

cout<<「陣列lowcost的內容為:」複雜度:o(e*logn)

#include

#include

#include

using namespace std;

const int n = 100;

int nodeset[n];

int n,m;

struct edgee[n*n]; //邊集

bool cmp(edge x,edge y)

return 1;

}int kurskal(int n)

return 0;

}int main()

e[n*n];

bool cmp(edge x,edge y)

int kurskal(int n)

return 0;

}int main()

while(i<=mid)

b[k++]=a[i++];

while(j<=high)

b[k++]=a[j++];

for(i=low,k=0;i<=high;i++)

a[i]=b[k++];

}void mergesort(int a,int low,int high)

swap(r[i],r[low]);

return i;

}大整數乘法

#include

#include

#include

using namespace std;

#define m 100

char sa[100],sb[100];

typedef struct _node

node,pnode;

void cp(pnode src,pnode des,int st,int l) //拆分函式,st為起點

void add(pnode pa,pnode pb,pnode ans)

ans->c=pb->c; //結果的冪指數等於較小的冪指數

cc=0; //進製初始為0

palen=pa->l+pa->c;

pblen=pb->l+pb->c;

if(palenc-pb->c; //pa需要補充的0的個數

for(i=0;ic;i++)

if(cc)

ans->s[i++]=cc;

ans->l=i;

}void mul(pnode pa,pnode pb,pnode ans)

ans->c=pa->c+pb->c; //結果的冪指數=兩個乘數的冪指數之和

w=pb->s[0]; //pb只有1位,用常數表示

cc=0;

for(i=0;il;i++)

if(cc)

ans->s[i++]=cc; //最後的進製填進陣列最後

ans->l=i;

return;

}cp(pa,&ah,ma,pa->l-ma);

cp(pa,&al,0,ma);

cp(pb,&bh,mb,pb->l-mb);

cp(pb,&bl,0,mb);

mul(&ah,&bh,&t1);

mul(&ah,&bl,&t2);

mul(&al,&bh,&t3);

mul(&al,&bl,&t4);

add(&t3,&t4,ans);

add(&t2,ans,&z);

add(&t1,&z,ans);

}

int main()

最小生成樹 次小生成樹

一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...

最小生成樹

package 圖 最小生成樹是用最少的邊吧把所有的節點連線起來。於是和圖的深度優先搜素差不多。class stack public void push int key public int pop 檢視棧頂的元素 public int peek public boolean isempty cla...

最小生成樹

define max vertex num 20 最大頂點數 typedef int adjmatrix max vertex num max vertex num 鄰接矩陣型別 typedef char vertextype typedef struct mgraph struct dnodecl...