==此部落格**思想參考了嚴蔚敏老師的教材,特此宣告==
【說明】這裡以8個葉子結點為例.ht和hc的具體轉變過程見書本p149頁(有些結點左右孩子的順序稍有不同,但是不影響)
【輸出】
ht[1]: 0 0 0 1
ht[2]: 1 0
ht[3]: 1 1 1 0
ht[4]: 1 1 1 1
ht[5]: 1 1 0
ht[6]: 0 1
ht[7]: 0 0 0 0
ht[8]: 0 0 1
#include #include #include #include #include #include #define maxsize 1000
#define n 8
using namespace std;
typedef struct htnode,* huffmantree; //動態分配陣列儲存赫夫曼樹
typedef char** huffmancode; //動態分配陣列儲存赫夫曼編碼表
void huffmancoding(huffmantree& ht,huffmancode& hc,int* w,int n);
void select(huffmantree ht,int t,int& s1,int& s2);
int main(); //n個葉子結點的權值
huffmancoding(ht,hc,w,n);
for(int i=1;i<=n;++i)
for(;i <= m;++i,++p);
p->weight = 0;
p->parent = 0;
p->lchild = 0;
p->rchild = 0;
}for(i = n + 1;i <= m;++i)
}}else
else if(ht[i].weight < ht[s2].weight && ht[i].weight > ht[s1].weight)}}
}}
資料結構(C語言版)
用棧實現數字的進製轉換 10轉8 棧 限定只能在表尾進行插入或者刪除操作的線性表 特點 先進後出 儲存表示方法 順序棧和鏈棧 本文用的順序棧 實現 readonly name code class c include include define stack init size 100 儲存空間初始...
資料結構之佇列 c語言版
佇列 queue 在邏輯上是一種線性儲存結構。它有以下幾個特點 1 佇列中資料是按照 先進先出 fifo,first in first out 方式進出佇列的。2 佇列只允許在 隊首 進行刪除操作,而在 隊尾 進行插入操作。佇列通常包括的兩種操作 入佇列 和 出佇列。底層可以由陣列 順序表 鍊錶實現...
資料結構之佇列(C語言版)
佇列的鏈式儲存結構 總結佇列 是只允許在一端進行插入操作,而在另一端進行刪除操作。可以是表頭,也可以是表尾 我們可以看到,佇列其實也是線性表的一種,佇列的意思其實就和他的名字一樣,他的儲存特點就像乙個一堆資料排隊一樣,先排到隊裡面的資料就先出來 first in first out 簡稱fifo。允...