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

資源簡介

數據結構哈夫曼編碼帶譯碼功能,C語言版程序加完成版實驗報告,完全可運,供大家參考。

資源截圖

代碼片段和文件信息

#include?
#include?

#define?MaxValue?10000
//設定的權值最大值
#define?MaxN?27
//設定的最大結點個數
#define?Maxsc?500
//設定存放字符串編碼數組的大小

#include?“Haffman.h“ //包含頭文件“Haffman.h“

void?main(void)
{
int?i?j?n?=?27?k?l; //定義n為結點個數
int?weight[MaxN]?=
{18664132232103211547571532205763151485180238181161}; //存放各個結點的權值
char?str[Maxs]; //存放字符串
char?letter[MaxN]?=?
{‘?‘‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘};
//結點對應字母
char?hcode[MaxN][MaxBit];?
//存放每個結點的對應編碼
int?count[MaxN]?=?{0};
//存放每個結點的對應編碼位數
char?strcode[Maxsc];
//存放字符串的編碼結果
/*
//輸入結點個數n
printf(“請輸入結點個數(不能超過%d):“?MaxN);
scanf(“%d“?&n);
getchar(‘\n‘);

//判斷n的值最大不能超過MaxN
if(n?>?MaxN)
{
printf(“\n給出的n越界修改MaxN的值!\n“);
exit(0);
}
*/
//輸入字符串
printf(“請輸入要編碼的字符串(最大長度為%d):?“?Maxs);
scanf(“%c“?&str[0]);
if(str[0]?==?‘\n‘)
{
printf(“沒有輸入字符串!\n“);
exit(0);
}
i?=?0;
while(str[i]?!=?‘\n‘)
{
i++;
scanf(“%c“?&str[i]);
if(i?>=?Maxs)
{
printf(“輸入的字符串過大!\n“);
exit(0);
}
}
str[i]?=?‘\0‘;
/*
//輸入各個結點的的字母和對應的權值
printf(“\n請輸入各個結點對應的字母:\n“);
for(i?=?0;?i? {
printf(“letter[%d]?=?“?i?+?1);
scanf(“?%c“?&letter[i]);
}
printf(“\n請輸入各個結點的權值:\n“);
for(i?=?0;?i? {
printf(“weight[%d]?=?“?i?+?1);
scanf(“%d“?&weight[i]);
}
*/
HaffNode?*myHaffTree?=?(HaffNode?*)malloc(sizeof(HaffNode)?*?(2?*?n?+?1));
Code?*myHaffCode?=?(Code?*)malloc(sizeof(Code)?*?n);

Haffman(weight?n?myHaffTree);
HaffmanCode(myHaffTree?n?myHaffCode);

//輸出每個葉結點的哈夫曼編碼
printf(“\n對26個小寫英文字母和空格進行哈夫曼編碼結果如下:\n“);
for(i?=?0;?i? {
printf(“Letter?=?%c???Weight?=?%d???Code?=?“?letter[i]?myHaffCode[i].weight);
for(j?=?myHaffCode[i].start;?j? {
printf(“%d“?myHaffCode[i].bit[j]);
count[i]++;
}
putchar(‘\n‘);
}
putchar(‘\n‘);

//存放每個結點對應的編碼
for(i?=?0;?i? for(k?=?0;?k? {
for(j?=?myHaffCode[i].start?l?=?0;?j? hcode[i][l]?=?myHaffCode[i].bit[j]?+?48;
hcode[i][l]?=?‘\0‘;
}

//存放字符串哈夫曼編碼結果
k?=?0;
l?=?0;
while(str[k]?!=?‘\0‘)
{
for(i?=?0;?i? {
if(str[k]?==?letter[i])
for(j?=?0;?j? strcode[l++]?=?hcode[i][j];
}
k++;
}
strcode[l++]?=?‘\0‘;

//讀取字符串并且顯示字符串哈夫曼編碼結果
printf(“對您輸入的字符串“);
i?=?0;
while(str[i]?!=?‘\0‘)
{
printf(“%c“?str[i]);
i++;
}
printf(“進行哈夫曼編碼的結果為:\n“);
for(i?=?0;?i? printf(“%c“?strcode[i]);
putchar(‘\n‘);

//調用譯碼函數進行譯碼
HaffmanCoding(strcode?hcode?letter?n?str);

//輸出譯碼結果
printf(“\n進行哈夫曼譯碼的結果為:“);
for(i?=?0;?i? printf(“%c“?strcode[i]);
printf(“\n\n“);
}

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

?????文件????????530??2010-01-02?19:04??哈弗曼編碼\Huffman編碼\Huffman編碼.dsw

?????文件??????33792??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Huffman編碼.ncb

?????文件????????326??2010-01-02?18:18??哈弗曼編碼\Huffman編碼\BFChang.h

?????文件???????1561??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Huffman編碼.plg

?????文件???????3178??2010-01-02?19:06??哈弗曼編碼\Huffman編碼\Haffman.h

?????文件???????4464??2010-01-02?19:06??哈弗曼編碼\Huffman編碼\Huffman編碼.dsp

?????文件???????3205??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Huffman.cpp

?????文件??????48640??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Huffman編碼.opt

?????文件??????33792??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\vc60.idb

?????文件??????53248??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\vc60.pdb

?????文件?????228312??2010-01-02?19:06??哈弗曼編碼\Huffman編碼\Debug\Huffman編碼.pch

?????文件?????193528??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\Huffman編碼.ilk

?????文件?????188505??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\Huffman編碼.exe

?????文件?????451584??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\Huffman編碼.pdb

?????文件??????12028??2010-01-02?19:55??哈弗曼編碼\Huffman編碼\Debug\Huffman.obj

?????文件?????233984??2010-06-27?21:14??哈弗曼編碼\數據結構設計性實驗報告譯碼.doc

?????目錄??????????0??2010-06-27?21:12??哈弗曼編碼\Huffman編碼\Debug

?????目錄??????????0??2010-06-27?21:12??哈弗曼編碼\Huffman編碼

?????目錄??????????0??2010-06-27?21:12??哈弗曼編碼

-----------?---------??----------?-----??----

??????????????1490677????????????????????19


評論

共有 條評論