久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數(shù)據(jù)結(jié)構(gòu) 吳亞峰 第二次作業(yè)(共5篇)

時(shí)間:2019-05-12 12:48:30下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《數(shù)據(jù)結(jié)構(gòu) 吳亞峰 第二次作業(yè)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《數(shù)據(jù)結(jié)構(gòu) 吳亞峰 第二次作業(yè)》。

第一篇:數(shù)據(jù)結(jié)構(gòu) 吳亞峰 第二次作業(yè)

哈夫曼編碼與解碼的實(shí)現(xiàn)

一、設(shè)計(jì)思想

首先構(gòu)建哈夫曼樹(shù),再去進(jìn)行哈夫曼的譯碼,接著設(shè)計(jì)函數(shù)進(jìn)行字符串的編碼過(guò)程,最后進(jìn)行哈夫曼編碼的譯碼。

定義一個(gè)結(jié)構(gòu)體,用于存放構(gòu)建哈夫曼樹(shù)所需要的所有變量,開(kāi)辟一塊地址空間,用于存放數(shù)組,數(shù)組中每個(gè)元素為之前定義的結(jié)構(gòu)體。輸入n個(gè)字符及其權(quán)值。

構(gòu)建哈夫曼樹(shù):在上述存儲(chǔ)結(jié)構(gòu)上實(shí)現(xiàn)的哈夫曼算法可大致描述為:

第一步:初始化。將ht[ ]中2n-1個(gè)結(jié)點(diǎn)里的三個(gè)指針均置為空,權(quán)值置為0。

第二步:輸入。讀入n個(gè)葉子的權(quán)值存于向量的前n個(gè)分量中。它們是初始森林中n個(gè)孤立的根結(jié)點(diǎn)上的權(quán)值。

第三步:合并。對(duì)森林中的樹(shù)共進(jìn)行n-1次合并,所產(chǎn)生的新結(jié)點(diǎn)依次放入向量ht的第i個(gè)分量中。每次合并分兩步: 在當(dāng)前森林ht[0..i-1]的所有結(jié)點(diǎn)中,選取權(quán)最小和次小的兩個(gè)根結(jié)點(diǎn)[s1]和 [s2]作為合并對(duì)象,這里0≤s1,s2≤i-1。將根為ht[s1]和ht[s2]的兩棵樹(shù)作為左右子樹(shù)合并為一棵新的樹(shù),新樹(shù)的根是新結(jié)點(diǎn)ht[i]。具體操作:

將ht[s1]和ht[s2]的parent置為i,將ht[i]的lchild和rchild分別置為s1和s2。新結(jié)點(diǎn)ht[i]的權(quán)值置為ht[s1]和ht[s2]的權(quán)值之和。

哈夫曼的編碼:約定左子為0,右子為1,則可以從根結(jié)點(diǎn)到葉子結(jié)點(diǎn)的路徑上的字符組成的字符串作為該葉子結(jié)點(diǎn)的編碼。

當(dāng)用戶(hù)輸入字母時(shí)。就在已經(jīng)找好編碼的編碼結(jié)構(gòu)體中去查找該字母。查到該字母就打印所存的哈夫曼編碼。接著就是完成用戶(hù)輸入0、1代碼時(shí)把代碼轉(zhuǎn)成字母的功能。這是從樹(shù)的頭結(jié)點(diǎn)向下查找,如果當(dāng)前用戶(hù)輸入的0、1串中是0則就走向該結(jié)點(diǎn)的左子。如果是1這就走向該結(jié)點(diǎn)的右結(jié)點(diǎn),重復(fù)上面步驟。直到發(fā)現(xiàn)該結(jié)點(diǎn)屬于輸入了字母的結(jié)構(gòu)體則打印該結(jié)構(gòu)體的字母。重復(fù)上面步驟。直到找完用戶(hù)輸入0、1串為止。則就完成了程序所有的譯碼過(guò)程。

哈夫曼編碼與解碼的實(shí)現(xiàn)

三、源代碼

#include #include

/* 數(shù)組頭文件 */ #include #define MAX 999

/* 定義長(zhǎng)度 */ typedef struct{

/* 定義哈夫曼編碼的結(jié)構(gòu)數(shù)組 */

char data;

int weight;

/* 定義權(quán)值 */

int parent;

int lchild;

int rchild;}huffmannode;typedef struct{

/* 定義保存哈夫曼結(jié)構(gòu)體 */

char bits[50];

int start;}huffmancode;void main(){

huffmannode ht[100];

/* 定義儲(chǔ)存權(quán)值的空間 */

huffmancode cd[100];

char string[100];

/* 定義數(shù)組存儲(chǔ)空間 */

char hcd[100];

int i,j,x,y,s1,s2,m1,m2,n,c,f,k;

printf(“please input the n=”);

/* 輸入字符的個(gè)數(shù) */

scanf(“%d”,&n);

printf(“n===============================n”);

for(i=0;i

{

getchar();

/* 獲得輸入的字符 */

printf(“please input the value :”);

scanf(“%c”,&ht[i].data);

/* 輸入字符函數(shù) */

printf(“please input the weight:”);

scanf(“%d”,&ht[i].weight);

}

printf(“n=============================n”);

for(i=0;i<2*n-1;i++)

{

ht[i].parent=ht[i].lchild=ht[i].rchild=-1;/* 初始化父結(jié)點(diǎn),左右子結(jié)點(diǎn) */

}

for(i=n;i<2*n-1;i++)

{

s1=s2=0;

/* 初始化變量 */

m1=m2=MAX;

哈夫曼編碼與解碼的實(shí)現(xiàn)

}

printf(“n=============================n”);

printf(“nPlease input the message:n”);

scanf(“%s”,string);

/* 輸入字符串 */

for(i=0;string[i]!='

主站蜘蛛池模板: 无码专区heyzo色欲av| 在线看片免费人成视频电影| 久久精品无码鲁网中文电影| 夜夜影院未满十八勿进| 国产精品亚洲二区在线观看| 影音先锋无码aⅴ男人资源站| 国产av午夜精品一区二区三| 亚洲精品无码高潮喷水在线| 国产新婚夫妇叫床声不断| 成在线人av免费无码高潮喷水| 少妇又色又紧又爽又刺激视频| 久久久久久国产精品无码超碰| 色拍拍国产精品视频免费观看| 欧美极品少妇无套实战| 国产乱子伦无码精品小说| 日韩欧美精品一中文字幕| 黑人强辱丰满的人妻熟女| 国产精品亚韩精品无码a在线| 精品日产卡一卡二卡麻豆| 2020国产成人精品影视| 小鲜肉自慰网站| 国产无遮挡免费真人视频在线观看| 亚洲性夜色噜噜噜在线观看不卡| 一本大道大臿蕉无码视频| 在线观看高h无码黄动漫| 国产亚洲日韩在线一区二区三区| 99久久国产综合精麻豆| 成人片无码免费播放| 东京道一本热中文字幕| 成人午夜精品无码区久久| 人妻少妇被粗大爽9797pw| 国内精品人妻无码久久久影院蜜桃| 青青草免费公开视频| 亚洲国产天堂久久综合| 亚洲精品乱码久久久久久蜜桃不卡| 无码人妻一区二区三区免费| 欧美熟妇性xxxx欧美熟人多毛| 免费在线观看av| 精品国产sm最大网站| 亚洲自偷自偷图片自拍| 成人欧美一区二区三区的电影|