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

  • 大小: 471KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-16
  • 語言: 其他
  • 標(biāo)簽: 數(shù)的操縱??human??

資源簡介

代碼及報告都有 [問題描述]   已知n個字符在原文中出現(xiàn)的頻率,求它們的哈夫曼編碼。 [基本要求]   1. 初始化:從鍵盤讀入n個字符,以及它們的權(quán)值,建立Huffman 樹。(具體算法可參見教材P147的算法6.12)   2. 編碼:根據(jù)建立的Huffman樹,求每個字符的Huffman編碼。 對給定的待編碼字符序列進(jìn)行編碼。 [選作內(nèi)容]   1. 譯碼:利用已經(jīng)建立好的Huffman樹,對上面的編碼結(jié)果譯碼。 譯碼的過程是分解電文中的字符串,從根結(jié)點出發(fā),按字符’0’和’1’確定找左孩子或右孩子,直至葉結(jié)點,便求得該子串相應(yīng)的字符。  4. 打印 Huffman樹。 [測試數(shù)據(jù)] 利用教材P.148 例6-2中的數(shù)據(jù)調(diào)試程序。可設(shè)8種符號分別為A,B,C,D,E,F,G,H。編/譯碼序列為 “CFBABBFHGH”(也可自己設(shè)定數(shù)據(jù)進(jìn)行測試)。

資源截圖

代碼片段和文件信息

#include
#include?
typedef?struct?{
????int?weight;
????int?parentlchildrchild;
char?elem;
}HTNode*HuffmanTree;//動態(tài)分配數(shù)組存儲赫夫曼樹
typedef?char?**HuffmanCode;//動態(tài)分配數(shù)組存儲赫夫曼編碼表
////////////////////////求赫夫曼編碼
void?Select(HuffmanTree?&HTint?nint?*s1int?*s2)
{
???int?i?min;
???for(i=1;i<=n;i++)
???{
if(HT[i].parent==0)
{
min=i;
i=n+1;
}
???}
???for(i=1;i<=n;i++)
???{
if(HT[i].parent==0)
{??if(HT[i].weight ????min=i;
}
???}
*s1=min;
???for(i=1;?i<=n;?i++)
???{
????if(HT[i].parent?==?0?&&?i!=*s1)
{
?????min?=?i;
?????i?=?n+1;
}
???}
????for(i=1;i<=n;i++)
???{
if(HT[i].parent==0&&i!=*s1)
{???if(HT[i].weight ??min=i;
}
}
???*s2=min;
}
////////////////////
void?Huffmantree(HuffmanTree?&HTint*wint?nchar?*e)
{?//w存放n個字符的權(quán)值,構(gòu)造赫夫曼樹HT,并求出n個字符的赫夫曼編碼HC
int?mis1s2;
if(n<=1)?return;
m=2*n-1;//總的結(jié)點
HT=new?HTNode[m+1];
for(i=1;i<=n;++i)
{/*1-n號放葉子結(jié)點,初始化*/
HT[i].weight=w[i];
HT[i].lchild=0;
HT[i].rchild=0;
HT[i].parent=0;
HT[i].elem=e[i];
}
for(i=n+1;i<=m;++i)?
{/*非葉子結(jié)點初始化*/
????????HT[i].weight=0;
HT[i].lchild=0;
HT[i].rchild=0;
HT[i].parent=0;
HT[i].elem=0;
}
????cout<<“HT的初態(tài)為:“< cout<<“weight“<<“??“<<“parent“<<“??“<<“l(fā)child“<<“??“<<“rchild“< for(i=1;i<=m;i++)//打印空赫夫曼樹
{?????
cout< }

for(i=n+1;i<=m;++i)
{//在HT[1……i]選擇parent為0且weight最小的兩個
????????Select(HTi-1&s1&s2);
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
}
?cout<<“HT的終態(tài)為:“< ? cout<<“weight“<<“??“<<“parent“<<“??“<<“l(fā)child“<<“??“<<“rchild“< for(i=1;i<=m;i++)//打印赫夫曼樹
{?
cout< }
}
////////////////////////////////////////////////////////
void?CHuffmancode(HuffmanTree?&HTHuffmanCode?&HCint?n)
{???

char?*cd;
????int?cfstar;
HC=new?char*[n+1];
cd=new?char[n];
cd[n-1]=‘\0‘;//編碼結(jié)束符

for(int?i=1;i<=n;++i)
{
star=n-1;?//從右向左逐位存放編碼,首先存放編碼結(jié)束符
for(c=if=HT[i].parent;f!=0;c=ff=HT[f].parent)//從葉子到根結(jié)點求編碼
if(HT[f].lchild==c)
cd[--star]=‘0‘;?//左分支標(biāo)0
else?
cd[--star]=‘1‘;//右分支標(biāo)1
HC[i]=new?char[n-star];?//為第i個編碼分配空間
strcpy(HC[i]&cd[star]);//從cd復(fù)制編碼串到HC
}
delete?cd;//釋放工作空間
??for(i=1;i<=n;i++)
???cout<}
////////////////////////////
void?main()
{
????HuffmanTree?HT;?
????HuffmanCode?HC;?
int?*w;//表示權(quán)值
char?*e;
char?c;
int?inmwei;
cout<<“請輸入赫夫曼樹的葉子節(jié)點數(shù)目n:“;
cin>>n;
w=new?int[n+1];//開辟n+1個數(shù)組空間
e=new?char[n+1];
for(i=1;i<=n;i++)
{
cout<<“請輸入第“< cin>>c;
e[i]=c;
cout<<“請輸入第“< cin>>wei;
w[i]=wei;

}
???Huffmantree(HTwne);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-05-07?16:32??實驗四-hfm編碼\
?????文件????????3367??2012-05-04?12:39??實驗四-hfm編碼\1.cpp
?????目錄???????????0??2012-05-07?16:27??實驗四-hfm編碼\Debug\
?????文件???????14133??2012-05-07?16:25??實驗四-hfm編碼\Debug\1.obj
?????文件??????213043??2012-05-07?16:25??實驗四-hfm編碼\Debug\hfm_5_4.exe
?????文件??????284328??2012-05-07?16:25??實驗四-hfm編碼\Debug\hfm_5_4.ilk
?????文件??????250296??2012-05-04?00:11??實驗四-hfm編碼\Debug\hfm_5_4.pch
?????文件??????533504??2012-05-04?12:39??實驗四-hfm編碼\Debug\hfm_5_4.pdb
?????文件???????41984??2012-05-07?16:25??實驗四-hfm編碼\Debug\vc60.idb
?????文件???????61440??2012-05-04?12:39??實驗四-hfm編碼\Debug\vc60.pdb
?????文件????????4290??2012-05-04?00:14??實驗四-hfm編碼\hfm_5_4.dsp
?????文件?????????520??2012-05-04?00:11??實驗四-hfm編碼\hfm_5_4.dsw
?????文件???????41984??2012-05-07?16:26??實驗四-hfm編碼\hfm_5_4.ncb
?????文件???????48640??2012-05-07?16:26??實驗四-hfm編碼\hfm_5_4.opt
?????文件?????????880??2012-05-07?16:25??實驗四-hfm編碼\hfm_5_4.plg
?????文件??????292864??2012-05-04?16:17??實驗四-hfm編碼\王寧實驗四__哈夫曼樹與哈夫曼編碼.doc

評論

共有 條評論