赫夫曼編碼

2021-09-09 02:59:01 字數 1099 閱讀 8268

/* 

功能function description: 赫夫曼編碼---正誤待驗證(除錯時候感覺有地方好像出錯了)

開發環境environment: dev c++ 4.9.9.1

技術特點technique:

版本version:

作者author: 可笑痴狂

日期date: 20120803

備註notes:

作用:輸入大寫字母組成的字串,然後以其出現的次數為權重進行編碼

*/#include#include#includeusing namespace std;

typedef struct node

htnode,*huffmantree;

typedef char **huffmancode;

void huffmancoding(int *w,int n,char *s)

for(;i<=m;++i,++p)

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

}ht[s1].parent=i;

for(j=1;jht[j].weight)

}ht[s2].parent=i;

ht[i].left=s1;

ht[i].right=s2;

ht[i].weight=ht[s1].weight+ht[s2].weight;

} //從葉子節點到根逆向求每個字元的赫夫曼編碼

hc=new char*[n+1]; //分配n個字元編碼的頭指標向量

char* cd=new char[n]; //分配求編碼的工作空間

cd[n-1]='\0';

for(i=1;i<=n;++i) //逐個字元求其編碼

delete cd;

for(i=0;i>s)

cout<<"赫夫曼編碼為:"

cout<<"請輸入字串(大寫字母):"<} return 0;

}

赫夫曼編碼

include include using namespace std typedef struct htnode,huffmantree 動態分配陣列儲存赫夫曼樹 typedef char huffmancode 動態分配陣列儲存赫夫曼編碼 赫夫曼編碼的演算法實現 void sethuffmant...

赫夫曼編碼

用赫夫曼樹進行編碼是我們處理資料壓縮常用的方法。請同學們用赫夫曼編碼方法儲存你班同學 資料結構 課程的期終考試成績。include include include include define ok 1 define maxnn 100000 typedef struct studentstuden...

赫夫曼編碼

問題r 赫夫曼編碼 思路 對於赫夫曼來說,往左走為0,往右走為1,可以發現每一位就往下走一層。因此整體報文的長度可以用不同報文在樹中的位置來確定,也就是說,符號種類 每個符號在樹中的深度即為整體報文的長度 而ascll碼的位元位長度為符號個數 8 include include include us...