91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

哈夫曼壓縮與解壓算法(可以直接運行),壓縮成二進制文件,而且生成了txt文件可以查看哈夫曼編碼。C++代碼

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include
#include?
#include?
#include??
#include?
using?namespace?std;
typedef?struct
{
int?weight;
int?parent?lchild?rchild;
}HafuNode*HufumanTree;
typedef?struct
{
char?*data;
int?*num;
int?length;
}TNode;
typedef?struct
{
char?*data;
char**?HM;
}Code;
typedef?char**?HuffmanCode;
void?initTnode(TNode?&tnod)
{
tnod.data?=?new?char[256];
tnod.num?=?new?int[256];
if?(tnod.data?==?NULL?||?tnod.num==NULL)
{
cout?< exit(1);
}
tnod.length?=?0;
}
void?initmap(map&?hafuman?HuffmanCode?code?int?nTNode?nodeint?&codelength)
{
for?(int?i?=?1;?i?<=?n;?i++)
{
string?s?=?code[i];
hafuman.insert(pair(s?node.data[i?-?1]));
codelength?=?s.size()*node.num[i?-?1]+?codelength;
}


}
void?Read(vector&?s)
{
char?ch;
ifstream?infile(“test.txt“?ios::in);
if?(!infile)
{
cout?< exit(1);
}
while?(infile.peek()?!=?EOF)
{
?infile.get(ch);
?s.push_back(ch);
}
infile.close();
}
bool?find(const?char?ch?TNode?t)
{
for?(int?i?=?0;?i? {
if?(t.data[i]?==?ch)
{
return?true;
}
}
return?false;
}
void?TNodeCount(TNode?&t?vector?v)
{
int?m?=?v.size()j=0;
char?ch;
for?(int?i?=?0;?i? {
ch?=?v[i];
if?(!find(ch?t))
{
t.data[j]?=?ch;
t.num[j]?=?count(v.begin()?v.end()?ch);
t.length++;
j++;
}
}
}
void?Select(HufumanTree?&tree?int?a?int?&b?int?&c)
{
int?min1?min2?minweight?=?10000;
for?(int?i?=?1;?i?<=?a;?i++)
{
if?(tree[i].parent?==?0)
{
if?(tree[i].weight? {
minweight?=?tree[i].weight;
min1?=?i;
}
}
}
tree[min1].parent?=?1;
minweight?=?10000;
for?(int?i?=?1;?i?<=?a;?i++)
{
if?(tree[i].parent?==?0)
{
if?(tree[i].weight? {
minweight?=?tree[i].weight;
min2?=?i;
}
}
}
tree[min2].parent?=?1;
b?=?min1;
c?=?min2;
}
void?CreateHuffmanTree(HufumanTree?&tree?TNode?node?int?n)
{
if?(n?<=?1)
{
return;
}
int?m?=?2?*?n?-?1;
tree?=?new?HafuNode[m+1];
for?(int?i?=?1;?i?<=?m;?i++)//為0表示沒有左右節點,父節點
{
tree[i].lchild?=?0;
tree[i].parent?=?0;
tree[i].rchild?=?0;
}
for?(int?i?=?1;?i?<=?n;?i++)
{
tree[i].weight?=?node.num[i?-?1];
}
int?s1?s2;
for?(int?i?=?n?+?1;?i?<=?m;?i++)
{
Select(tree?i?-?1?s1?s2);
tree[s1].parent?=?i;
tree[s2].parent?=?i;
tree[i].lchild?=?s1;
tree[i].rchild?=?s2;
tree[i].weight?=?tree[s1].weight?+?tree[s2].weight;
}
}
void?CreatHuffmanCode(HufumanTree?tree?HuffmanCode?&code?int?n)
{
int?pare?child?start;
code?=?new?char?*[n?+?1];
char*?cd?=?new?char[n];
cd[n?-?1]?=?‘\0‘;
for?(int?i?=?1;?i?<=?n;?i++)
{
start?=?n?-?1;
child?=?i;
pare?=?tree[i].parent;
while?(pare?!=?0)
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????..A..H.?????27648??2018-06-09?18:03??hafuaman\.vs\hafuaman\v15\.suo

?????文件???36753408??2018-06-09?18:03??hafuaman\.vs\hafuaman\v15\Browse.VC.db

?????文件???28442624??2018-06-05?22:24??hafuaman\.vs\hafuaman\v15\ipch\AutoPCH\3c47d55aa3b80158\源.ipch

?????文件???75497472??2018-06-09?17:56??hafuaman\.vs\hafuaman\v15\ipch\AutoPCH\b0a45fc93d32f417\源.ipch

?????文件?????184320??2018-06-09?17:58??hafuaman\Debug\hafuaman.exe

?????文件????1138536??2018-06-09?17:58??hafuaman\Debug\hafuaman.ilk

?????文件????1921024??2018-06-09?17:58??hafuaman\Debug\hafuaman.pdb

?????文件?????????33??2018-06-09?17:59??hafuaman\hafuaman\compression.txt

?????文件??????????5??2018-06-09?17:59??hafuaman\hafuaman\compression_2.dat

?????文件????????928??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.log

?????文件????????572??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\CL.command.1.tlog

?????文件??????33540??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\CL.read.1.tlog

?????文件????????344??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\CL.write.1.tlog

?????文件????????205??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\hafuaman.lastbuildstate

?????文件????????998??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\link.command.1.tlog

?????文件???????2896??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\link.read.1.tlog

?????文件????????328??2018-06-09?17:58??hafuaman\hafuaman\Debug\hafuaman.tlog\link.write.1.tlog

?????文件?????355328??2018-06-09?17:58??hafuaman\hafuaman\Debug\vc141.idb

?????文件?????585728??2018-06-09?17:58??hafuaman\hafuaman\Debug\vc141.pdb

?????文件?????854178??2018-06-09?17:58??hafuaman\hafuaman\Debug\源.obj

?????文件?????????11??2018-06-09?17:59??hafuaman\hafuaman\decompression.txt

?????文件???????6001??2018-06-05?21:53??hafuaman\hafuaman\hafuaman.vcxproj

?????文件????????948??2018-06-05?21:52??hafuaman\hafuaman\hafuaman.vcxproj.filters

?????文件????????165??2018-06-05?19:20??hafuaman\hafuaman\hafuaman.vcxproj.user

?????文件?????????11??2018-06-08?16:30??hafuaman\hafuaman\test.txt

?????文件???????6830??2018-06-09?17:58??hafuaman\hafuaman\源.cpp

?????文件???????1438??2018-06-05?19:20??hafuaman\hafuaman.sln

?????目錄??????????0??2018-06-05?19:30??hafuaman\.vs\hafuaman\v15\ipch\AutoPCH\3c47d55aa3b80158

?????目錄??????????0??2018-06-09?17:56??hafuaman\.vs\hafuaman\v15\ipch\AutoPCH\b0a45fc93d32f417

?????目錄??????????0??2018-06-05?19:31??hafuaman\.vs\hafuaman\v15\ipch\AutoPCH

............此處省略12個文件信息

評論

共有 條評論