//編碼#include#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
struct
huffmannode
}huffmannode, *phuffmannode;
typedef pair
pii;//
haffuman節點和它的編號
bool
operator >(pii x, pii y)
struct
huffman
huffman = new huffmannode[2*(cntnode)];
int index = 0
;
for(int i=0; i<150; ++i)
}while(qnode.size()>=2
) }
void
huffmancoding()
else
if(huffman[p].rd == child)
}reverse(code.begin(), code.end());
huffmanmapx.insert(make_pair(code, huffman[i].ch));
huffmanmapy.insert(make_pair(huffman[i].ch, code));}}
void outhuffmantree(fstream &fout, int
f) else
}void
outhuffmancode()
cout
fout
/想檔案中輸入huffman編碼
int f = 2*cntnode-2;//
huffman樹的父節點
outhuffmantree(fout, f);
fout
<
for(map::iterator it = huffmanmapx.begin(); it!=huffmanmapx.end(); ++it)
}};int
main()
//解碼操作流程:#include#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
struct
huffmantreenode
} *phuffmantreenode;
struct
huffman
void
outt(phuffmantreenode t)
else
return
;
if(t->rd !=null)
}void
inithuffmantree()
}void
outhuffmanencode()
else
if(i==code.length()-1) encode+=huffmanmapx[cd];
}cout
}};int
main()
文字內容:aaaaaaabbbbbccdddd, and i am a student, my name is hjzgg!
1.首先利用''編碼"工具將文字編碼,會輸出乙個out.txt的文字,將out.txt文字中的內容傳送給你的好友。
2.接受到out.txt文字的內容後,將內容複製到文字名為in.txt的檔案中,利用"解碼"工具(保證in.txt和解碼工具在同一目錄下)可以檢視文字內容。
3.其中out.txt文字的格式如下:
Huffman樹的編碼解碼
上個學期做的課程設計,關於huffman樹的編碼解碼。要求 輸入huffman樹各個葉結點的字元和權值,建立huffman樹並執行編碼操作 輸入一行僅由01組成的電文字串,根據建立的huffman樹進行解碼操作,程式最後輸出解碼後的結果 huffman.h定義了樹的結點資訊,各種操作。gcc編譯通過...
huffman編碼和解碼實現
寫資料結構的實驗確實是蠻麻煩的,下面提供乙個還可以執行的源程式給大家參考,應付實驗老師是綽綽有餘的了 link.h檔案內容 pragma once class link link的實現檔案什麼內容也沒有,所以就不寫啦 huffman.h內容 pragma once include link.h cl...
huffman樹和huffman編碼
huffman樹和huffman編碼 include include include include define overflow 1 typedef struct htnode,huffmantree typedef char huffmancode void select huffmantre...