亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用C語言實現(xiàn)哈夫曼編碼譯碼

        2016-06-27 18:58:37楊野
        科教導(dǎo)刊·電子版 2016年8期

        楊野

        摘 要 利用哈夫曼編碼可縮短信息傳輸時間,提高信道利用率。本文分析了用C語言實現(xiàn)哈夫曼編碼譯碼。

        關(guān)鍵詞 C語言 哈夫曼 編碼 譯碼

        中圖分類號:TP313 文獻(xiàn)標(biāo)識碼:A

        0引言

        當(dāng)今時代信息高速發(fā)展,利用哈夫曼編碼進(jìn)行通信可提高信道利用率從而獲得更大的利潤。

        1算法設(shè)計

        1.1算法說明

        哈夫曼樹也稱最優(yōu)二叉樹。給定一組具有確定權(quán)值的葉子結(jié)點(diǎn),可以構(gòu)造出不同的二叉樹,二叉樹的帶權(quán)路徑長度記為:WPL=∑Wklk,Wk為第k個葉子結(jié)點(diǎn)的權(quán)值,lk為從根結(jié)點(diǎn)到第k個葉子結(jié)點(diǎn)的路徑長度。

        1.2算法所需數(shù)據(jù)結(jié)構(gòu)

        表1:結(jié)點(diǎn)結(jié)構(gòu)

        其中:

        Weight:權(quán)值;

        L_child:左孩子結(jié)點(diǎn)信息;

        R_child:右孩子結(jié)點(diǎn)信息;

        Parent:雙親結(jié)點(diǎn)信息;

        Name:姓名。

        1.3算法流程

        1.3.1編碼

        (1)初始化哈夫曼樹;

        (2)初始化結(jié)構(gòu)體;

        (3)輸入葉子權(quán)值及名稱;

        (4)選取兩個最小權(quán)值的葉子;

        (5)創(chuàng)建哈夫曼樹。

        1.3.2譯碼

        (1)找尋哈夫曼樹根節(jié)點(diǎn);

        (2)遍歷哈夫曼樹: 1->右子樹,0->左子樹;

        (3)判斷是否走到葉子節(jié)點(diǎn),若是,打印字符并回歸根節(jié)點(diǎn)。

        2算法程序?qū)崿F(xiàn)

        2.1編碼過程實現(xiàn)

        void Encode(Huff_tree T){

        char r[1000];

        int i, j;

        printf("\n\n請輸入需要編碼的字符\n");

        gets(r);

        printf("編碼結(jié)果為:");

        for(j=0;r[j]!='\0';j++){

        for(i=0;i

        if(r[j]==T[i].Name)

        Path(T,i,j);

        }

        }

        printf("\n");

        }

        2.2譯碼過程實現(xiàn)

        void Decode(Huff_tree T) {

        char r[1000];

        int p,R,t,length;

        R=root(T,&p);

        t=R;

        printf("\n請輸入您需要譯碼的字符串:\n");

        gets(r);

        length=strlen(r);

        printf("\n譯碼結(jié)果是:\n");

        for(int i=0;i

        if(r[i]=='0'){

        t=T[t].L_child;

        if(T[t].L_child==-1){

        printf("%c",T[t].Name);

        t=R;

        }

        }

        else if(r[i]=='1'){

        t=T[t].R_child;

        if(T[t].R_child==-1){

        printf("%c",T[t].Name);

        t=R;

        printf("\n\n");

        3有效性檢測

        在Windows環(huán)境下對程序進(jìn)行編碼譯碼檢測,結(jié)果如下:

        編碼測試:

        輸入值:acbdefacebadd

        編碼值:11101101111000110111011001111111100000

        輸入值:bacebdf

        編碼值:111111101100111110010

        譯碼測試:

        輸入值:1110110100110000

        譯碼值:acfefd

        輸入值:00110000111010110100101101001001100010

        譯碼值:dcdecfcfeedcdf

        經(jīng)驗證,程序運(yùn)行正常。

        4結(jié)語

        本文給出了哈夫曼樹的C語言實現(xiàn)方法并在windows環(huán)境下進(jìn)行了實現(xiàn)。

        參考文獻(xiàn)

        [1] 譚浩強(qiáng).C語言程序設(shè)計(第三版)[M].北京:清華大學(xué)出版社,2014.

        [2] 屈婉玲,耿素云,張立昂.離散數(shù)學(xué)[M].北京:高等教育出版社,2008.

        [3] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C版)[M].北京:清華大學(xué)出版社,2012.

        亚洲男同gay在线观看| 黄页免费人成网址大全| 亚洲国产色婷婷久久精品| 品色堂永远免费| 无码毛片aaa在线| 国产精品亚洲专区无码不卡 | 亚洲аv天堂无码| 亚洲一区极品美女写真在线看| 亚洲中文字幕久久精品色老板| 国产精品亚洲а∨天堂2021| 精品视频一区二区三三区四区| 97碰碰碰人妻视频无码| 国产精品综合一区久久| 人妻无码中文字幕| 欧美日韩精品乱国产538| 中文字幕亚洲精品第一页| 国产精品午夜夜伦鲁鲁| 激情影院内射美女| 亚洲aⅴ无码日韩av无码网站| 精品日韩av专区一区二区| 在线观看午夜视频一区二区| 亚洲av综合日韩| 亚洲国产精品久久久性色av| 亚洲中文乱码在线观看| 日韩欧美aⅴ综合网站发布| 九九视频在线观看视频6| 无码国产一区二区色欲| 日韩人妻中文字幕专区| 国产农村乱辈无码| 久久九九青青国产精品| 亚洲人妻御姐中文字幕| 最新国产毛2卡3卡4卡| 色婷婷五月综合亚洲小说| 亚洲一区二区成人在线视频| 亚洲综合第一页中文字幕| 少妇人妻陈艳和黑人教练| 加勒比精品久久一区二区三区| 国产一区二区三区白浆肉丝| 国产98色在线 | 国产| 99精品电影一区二区免费看| 一本色道久久88综合亚洲精品|