資料結構C語言版之赫夫曼編碼

2021-07-26 12:45:52 字數 1265 閱讀 2616

==此部落格**思想參考了嚴蔚敏老師的教材,特此宣告==

【說明】這裡以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。允...