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

  • 大小: 715KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-01
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 哈夫曼樹(shù)??

資源簡(jiǎn)介

這是大二時(shí)的數(shù)據(jù)結(jié)構(gòu)的課設(shè),今天與大家分享。可以讀寫(xiě)文件,編碼譯碼,以及對(duì)輸入的異常處理。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

/*-------------------------------------------------------------------------------------------------------------------*/
struct?HtNode???????????????????????????/*哈夫曼樹(shù)結(jié)點(diǎn)的結(jié)構(gòu)*/
{
int?ww; /*權(quán)值*/
int?parentllinkrlinkrlparent; /*rlparent是記錄該結(jié)點(diǎn)是父結(jié)點(diǎn)的左孩子還是右孩子*/
char?a; ????????????????????????????/*記錄編碼字符的信息*/
};
typedef?struct?HtNode?*?PHtNode;
struct?HtTree /*哈夫曼樹(shù)結(jié)構(gòu)*/
{
int?m; /*外部結(jié)點(diǎn)的個(gè)數(shù)*/
int?root; /*哈夫曼樹(shù)在數(shù)組中的下標(biāo)*/
struct?HtNode?*ht; /*存放2*m-1個(gè)結(jié)點(diǎn)的數(shù)組*/
};
typedef?struct?HtTree?*?PHtTree; /*哈夫曼樹(shù)類(lèi)型的指針類(lèi)型*/



/*-------------------------------------------------------------------------------------------------------------------*/



/************************************************************************/
/*函數(shù)的功能:創(chuàng)建哈夫曼樹(shù),將電文編碼??????????????????????????????????*/
/*函數(shù)的參數(shù):1、哈夫曼樹(shù)葉子結(jié)點(diǎn)的個(gè)數(shù)??2、權(quán)值的數(shù)組?3、編碼字符的信息*/
/*函數(shù)的返回值:返回指向數(shù)組的指針??????????????????????????????????????*/
/************************************************************************/
PHtTree?huffman(int?mint?*wchar?*p)??????????????/*構(gòu)造具有m個(gè)外部結(jié)點(diǎn)的哈夫曼樹(shù)*/
{
PHtTree?pht;
int?ijx1x2m1m2;
pht=(PHtTree)malloc(sizeof(struct?HtTree)); ???/*分配哈夫曼樹(shù)空間*/
if(pht==NULL)
{
printf(“Out?of?space!!\n“);
return?pht;
}
pht->ht=(struct?HtNode?*)malloc(sizeof(struct?HtNode)*(2*m-1));?/*分配ht數(shù)組空間*/
if(pht->ht==NULL)
{
printf(“Out?of?space!!\n“);
return?pht;
}

for(i=0;i<2*m-1;i++) /*置ht數(shù)組初態(tài)*/
{
pht->ht[i].llink=-1;
pht->ht[i].rlink=-1;
pht->ht[i].parent=-1;
pht->ht[i].rlparent=-1;
if(i {
pht->ht[i].ww=w[i];??????/*各點(diǎn)的權(quán)值*/
pht->ht[i].a=p[i];???????/*各點(diǎn)的字符信息*/
}
else
pht->ht[i].ww=-1;????????/*剩余的結(jié)點(diǎn)賦值為-1*/
}


for(i=0;i {
m1=m2=32767; /*相關(guān)變量賦初值*/
x1=x2=-1;
for(j=0;j {
if(pht->ht[j].wwht[j].parent==-1) /*x1中存放最小權(quán)的無(wú)父結(jié)點(diǎn)的結(jié)點(diǎn)下標(biāo)*/
{
m2=m1; /*x2中存放第二小權(quán)的無(wú)父結(jié)點(diǎn)的結(jié)點(diǎn)下標(biāo)*/
x2=x1;
m1=pht->ht[j].ww;
x1=j;
}
else?if(pht->ht[j].wwht[j].parent==-1)
{
m2=pht->ht[j].ww;
x2=j;
}
}

pht->ht[x1].parent=m+i; /*構(gòu)造內(nèi)部結(jié)點(diǎn)*/
pht->ht[x1].rlparent=0;?????????????????/*該結(jié)點(diǎn)是父結(jié)點(diǎn)的左孩子*/
pht->ht[x2].parent=m+i;?????????????????/*該結(jié)點(diǎn)的父結(jié)點(diǎn)的位置,即數(shù)組下標(biāo)*/
pht->ht[x2].rlparent=1; /*該結(jié)點(diǎn)是父結(jié)點(diǎn)的右孩子*/
pht->ht[m+i].ww=m1+m2; /*父結(jié)點(diǎn)的權(quán)值是左右孩子的權(quán)值之和*/
pht->ht[m+i].llink=x1; /*將父結(jié)點(diǎn)的llink的值賦上左孩子所在的數(shù)組下標(biāo)*/
pht->ht[m+i].rlink=x2; /*將父結(jié)點(diǎn)的rlink的值賦上右孩子所在的數(shù)組下標(biāo)*/
}
pht->root=2*m-2;????????????????????????????/*根結(jié)點(diǎn)的位置在數(shù)組的最后一個(gè)元素*/
printf(“哈夫曼樹(shù)創(chuàng)建成功!!\n哈夫曼樹(shù)在數(shù)組中的存儲(chǔ)形式為:\n“);????????????????????????????????
for(i=0;i<2*m-1;i++)???????????????????????/*輸出哈夫曼樹(shù)中的數(shù)組所保存的權(quán)值*/
{
printf(“??%d?“pht->ht[i]);
}
printf(“\n編碼成功!\n“);
return?pht;????????????????????????????????????????????????????
}
/*--------------------------------------------

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件?????634880??2010-07-26?18:47??哈夫曼樹(shù).doc

?????文件??????32837??2010-07-14?12:16??哈夫曼樹(shù)\Debug\huffamn.obj

?????文件?????184772??2010-07-13?12:59??哈夫曼樹(shù)\Debug\huffamn.pch

?????文件?????492544??2010-07-13?22:20??哈夫曼樹(shù)\Debug\huffamn.pdb

?????文件???????2560??2010-07-13?13:10??哈夫曼樹(shù)\Debug\huffamn.suo

?????文件??????33792??2010-07-14?12:16??哈夫曼樹(shù)\Debug\vc60.idb

?????文件??????53248??2010-07-14?12:16??哈夫曼樹(shù)\Debug\vc60.pdb

?????文件?????204869??2010-07-14?12:16??哈夫曼樹(shù)\Debug\哈夫曼樹(shù).exe

?????文件?????225368??2010-07-14?12:16??哈夫曼樹(shù)\Debug\哈夫曼樹(shù).ilk

?????文件?????184772??2010-07-13?12:39??哈夫曼樹(shù)\Debug\哈夫曼樹(shù).pch

?????文件?????549888??2010-07-14?12:16??哈夫曼樹(shù)\Debug\哈夫曼樹(shù).pdb

?????文件???????3072??2010-07-14?08:00??哈夫曼樹(shù)\Debug\哈夫曼樹(shù).suo

?????文件?????????27??2010-07-13?22:06??哈夫曼樹(shù)\dianwen.txt

?????文件??????20444??2010-07-14?08:12??哈夫曼樹(shù)\huffamn.c

?????文件???????3411??2010-07-14?08:06??哈夫曼樹(shù)\huffamn.dsp

?????文件??????50176??2010-07-14?08:10??哈夫曼樹(shù)\huffamn.ncb

?????文件??????48640??2010-07-14?08:06??哈夫曼樹(shù)\huffamn.opt

?????文件??????????0??2010-07-14?08:10??哈夫曼樹(shù)\huffamn.plg

?????文件???????4305??2010-07-11?17:01??哈夫曼樹(shù)\哈夫曼樹(shù).dsp

?????文件????????524??2010-07-11?16:12??哈夫曼樹(shù)\哈夫曼樹(shù).dsw

?????文件??????50176??2010-07-14?13:43??哈夫曼樹(shù)\哈夫曼樹(shù).ncb

?????文件??????48640??2010-07-14?13:43??哈夫曼樹(shù)\哈夫曼樹(shù).opt

?????文件????????898??2010-07-14?12:16??哈夫曼樹(shù)\哈夫曼樹(shù).plg

????..A..H.??????6144??2010-07-11?20:16??哈夫曼樹(shù)\哈夫曼樹(shù).suo

?????目錄??????????0??2010-07-14?08:11??哈夫曼樹(shù)\Debug

?????目錄??????????0??2010-07-14?13:43??哈夫曼樹(shù)

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

??????????????2835987????????????????????26


評(píng)論

共有 條評(píng)論

相關(guān)資源