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

  • 大小: 6.17MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-14
  • 語言: C/C++
  • 標簽: 哈夫曼樹??

資源簡介

用C++實現的哈夫曼編譯碼器,可以實現創建哈夫曼樹、對txt文件進行編碼、譯碼,也可以查看生成的哈夫曼樹。數據結構作業參考之必備品。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include//包含系統函數
#include//含有getch()
using?namespace?std;

class?Hufmantree
{
private:
int?weight;
int?parent;
int?lchild;
int?rchild;
char?letter;
public:
Hufmantree();
Hufmantree(int?wint?pint?lint?rchar?le):weight(w)parent(p)lchild(l)rchild(r)letter(le){};
Hufmantree*?InitTree(char*lint*?wint?n);
char**?CodeList(Hufmantree?*Htint?n);

int?gweight();
int?gparent();
int?glchild();
int?grchild();
char?gletter();

void?cweight(int);
????void?cparent(int);
????void?clchild(int);
????void?crchild(int);
void?cletter(char);


void?Select(Hufmantree?*Htint?nint?&s1int?&s2);
void?Prin(Hufmantree?*Ht);
void?Outchart(char**Hcint?n);

void?SaveTree(Hufmantree*Ht);
void?SaveList(char**Hcint);

void?encode(Hufmantree?*Htchar**Hc);?//編碼

void?decode(Hufmantree?*Ht);//譯碼
void?findchar(Hufmantree?*Htchar?*pintint?&jint?&length);//譯碼尋找函數

Hufmantree*?GetTree();//從磁盤文件讀樹的信息



void?treeprint(Hufmantree*Htint?iint?j);
????void?Tprint(Hufmantree*Ht);
????
Hufmantree*?Creattree();

void?Menu();


};
int?main()
{???
/********************測試**********************/

Hufmantree?t;
t.Menu();
// Hufmantree?*Ht;
// char?**Hc;
/* Ht=t.InitTree(ab7);
Ht=t.GetTree();
t.Prin(Ht);
????t.encode(HtHc);
????t.Tprint(Ht);
Ht=t.Creattree();
Hc=t.CodeList(Ht27);
t.Outchart(Hc27);
t.SaveList(Hc27);
t.encode(HtHc);
t.decode(Ht);
*/

return?0;
}
/***********************構造函數和基本初等函數****************/
Hufmantree::Hufmantree()
{???
letter=0;
weight=0;
parent=0;
lchild=0;
rchild=0;
}
/***********************獲得相關的值**********************/
int?Hufmantree::gweight(){return?weight;}
int?Hufmantree::gparent(){return?parent;}
int?Hufmantree::glchild(){return?lchild;}
int?Hufmantree::grchild(){return?rchild;}
char?Hufmantree::gletter(){return?letter;}
/**********************改變相關的值*********************/
void?Hufmantree::cweight(int?w){weight=w;}
void?Hufmantree::cparent(int?p){parent=p;}
void?Hufmantree::clchild(int?l){lchild=l;}
void?Hufmantree::crchild(int?r){rchild=r;}
void?Hufmantree::cletter(char?le){letter=le;}
/***************************************初始化樹相關的***************/
void?Hufmantree::Select(Hufmantree?*Htint?nint?&s1int?&s2)??//選擇兩個最小值
{
???
???int?i;
?
???for(i=1;i<=n;i++)
???{???
???
???if(Ht[i].gparent()==0)
???{?
???s1=i;?

???}

???}
???for(i=1;i<=n;i++)
???{
???if(Ht[i].parent==0)
???{
???if(Ht[i].gweight()<=Ht[s1].gweight())
???{s1=i;}
???}
???}

for(i=1;i<=n;i++)
{
???if((Ht[i].parent==0)&&(i!=s1))
???{????
???s2=i;
???????}
??
????}
???????
for(i=1;i<=n;i++)
???{
???if((Ht[i].parent==0)&&(i!=s1))
???{??
???
???if(Ht[i].weight<=Ht[s2].weight)
???{??
??????
???s2=i;
???}
???}
???}
???

}
/***************************建立樹******

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-10-03?09:34??huffmanOK\
?????文件?????????165??2012-10-03?09:33??huffmanOK\codefile.txt
?????目錄???????????0??2013-08-21?22:07??huffmanOK\Debug\
?????文件?????????708??2012-10-03?09:33??huffmanOK\Debug\cl.command.1.tlog
?????文件???????10074??2012-10-03?09:33??huffmanOK\Debug\CL.read.1.tlog
?????文件?????????366??2012-10-03?09:33??huffmanOK\Debug\CL.write.1.tlog
?????文件?????????320??2015-12-03?09:31??huffmanOK\Debug\codefile.txt
?????文件??????614781??2012-10-03?09:33??huffmanOK\Debug\edit.obj
?????文件?????????739??2012-10-01?14:19??huffmanOK\Debug\hfmtree.txt
?????文件??????697344??2012-10-03?09:33??huffmanOK\Debug\huffman.exe
?????文件?????????406??2012-10-03?09:33??huffmanOK\Debug\huffman.exe.embed.manifest
?????文件?????????472??2012-10-03?09:33??huffmanOK\Debug\huffman.exe.embed.manifest.res
?????文件?????????381??2012-10-03?09:33??huffmanOK\Debug\huffman.exe.intermediate.manifest
?????文件?????1807700??2012-10-03?09:33??huffmanOK\Debug\huffman.ilk
?????文件??????????73??2012-10-03?09:33??huffmanOK\Debug\huffman.lastbuildstate
?????文件????????3824??2012-10-03?09:33??huffmanOK\Debug\huffman.log
?????文件?????2927616??2012-10-03?09:33??huffmanOK\Debug\huffman.pdb
?????文件?????????210??2012-10-03?09:33??huffmanOK\Debug\huffman_manifest.rc
?????文件???????????2??2012-10-03?09:33??huffmanOK\Debug\link-cvtres.read.1.tlog
?????文件???????????2??2012-10-03?09:33??huffmanOK\Debug\link-cvtres.write.1.tlog
?????文件????????1456??2012-10-03?09:33??huffmanOK\Debug\link.command.1.tlog
?????文件????????3274??2012-10-03?09:33??huffmanOK\Debug\link.read.1.tlog
?????文件?????????858??2012-10-03?09:33??huffmanOK\Debug\link.write.1.tlog
?????文件?????????209??2012-10-01?14:19??huffmanOK\Debug\list.txt
?????文件?????????402??2012-10-03?09:33??huffmanOK\Debug\mt.command.1.tlog
?????文件?????????442??2012-10-03?09:33??huffmanOK\Debug\mt.read.1.tlog
?????文件?????????338??2012-10-03?09:33??huffmanOK\Debug\mt.write.1.tlog
?????文件?????????560??2012-10-03?09:33??huffmanOK\Debug\rc.command.1.tlog
?????文件?????????414??2012-10-03?09:33??huffmanOK\Debug\rc.read.1.tlog
?????文件?????????318??2012-10-03?09:33??huffmanOK\Debug\rc.write.1.tlog
?????文件??????????88??2015-12-03?09:31??huffmanOK\Debug\textfile.txt
............此處省略26個文件信息

評論

共有 條評論