演算法筆記 最優二叉樹 prim演算法

2022-08-14 20:36:18 字數 1114 閱讀 3991

1//2

//created by alim on 2017/12/21.3//

45 #include "

iostream

"6 #include "

algorithm"7

8using

namespace

std;

9const

int inf = 0x3fffffff;//

表示無窮大

10const

int n = 100;//

節點最大值

11bool s[n];//

節點的集合

12int closest[n];//

最近點陣列

13int lowcost[n];//

最小權值陣列

1415

void prim(int n,int u0,int

c[n][n]) else31}

32for (int i = 1; i <= n; ++i) 40}

41if (t ==u0)

44 s[t] = true;45

for (int j = 1; j <= n; ++j) 50}

51}52}

5354

intmain()69}

70 cout << "

請輸入節點u,v 以及權值 w:

"<71for (int k = 1; k <= m; ++k)

75 cout << "

請輸入任一節點u0:

"<76 cin>>u0;

7778

//計算最後的lowcost的總和,即為結果

79prim(n,u0,c);

8081 cout << "

陣列lowcost的內容為:

"<82for (int l = 1; l <= n; ++l)

85 cout <86for (int i = 1; i <= n; ++i)

89 cout << "

最短路徑為:

"<< sumcost << endl <90return0;

91 }

哈夫曼演算法(最優二叉樹)

演算法思想 每次從集合中選取兩個最小和次小權值的結點作為新構造二叉樹的左右子樹,新二叉樹的根結點的權值為其左右子樹的根結點的權值之和,直到只有一顆二叉樹 對給定的n個權值構成n棵二叉樹的初始集合f 其中每棵二叉樹ti中只有乙個權值為wi的根結點,它的左右子樹均為空。為方便在計算機上實現演算法,一般還...

最優二叉樹

include include includetypedef struct huffmantree typedef char huffmancode 赫夫曼編碼 void selectnode huffmantree ht,int n,int bt1,int bt2 從1 i 1個結點選擇paren...

最優二叉樹

所謂哈夫曼樹即最優二叉樹,其特點是帶權路徑長度最小 建樹原理 將最小數結點放到最下面,大數放到離頂點近的地方,建樹時從下往上建,每上一層下一層的數就被重複加一次,這樣最終得到完整樹 資料結構實驗之二叉樹六 哈夫曼編碼 problem description 字元的編碼方式有多種,除了大家熟悉的asc...