青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

#include <cstdio>
#include 
<algorithm>
#include 
<vector>
#include 
<queue>
#include 
<string>

using namespace std;

struct HTNode
{
    
int weight, letter, lchild, rchild;
    
    HTNode(){}
    HTNode( 
int a, int b, int c, int d ) :weight(a), letter(b), lchild(c), rchild(d) {}
};

struct  Info
{
    
int  num, lett, id;
    Info();
    Info( 
int a, int c,  int b ): num(a), lett(c), id(b) {}
};

bool operator< ( Info const& a, Info const& b )
{
    
return a.num> b.num;
}

int     num[26], len= 0, root;
char    str[1000];
string  code[26];
vector
<HTNode>  ht;
priority_queue
<Info>  info;

void buildtree();
void codeht(int,string);
void decode( int,int);

void input()                                  //  輸入過程 
{
    printf(
"注意:  該程序只處理大寫字母, 其它字符不予處理\n");
    printf(
"請輸入文本, 在最后另起一行按  F6  結束輸入:\n");
    
char ch;
    
    memset( num, 
0sizeof(num) );
    
while( scanf("%c",&ch)!= EOF )
        
if( ch>= 'A' && ch<= 'Z' )  num[ch- 'A']++;
        
    printf(
"各字母個數為:\n");
    
for(int i= 0; i< 26++i )
    
if( num[i] ) printf("%c  %d\n", i+ 'A', num[i] ); 
}

void test()
{
    input();
    buildtree();
    codeht( root, 
"" );
    
    printf(
"各字母的哈夫曼編碼為:\n\n"); 
    
forint i= 0; i< 26++i )
    
if( num[i] ) printf("%c  %s\n", i+ 'A', code[i].c_str() );
    
    printf(
"\n\n\n請輸入你要解碼的字符串,不能有空格,并且輸入合法\n"); 
    scanf(
"%s", str );
    
    printf(
"解碼后為:\n\n"); 
    
    decode(
0, root ); 
    printf(
"\n\n\n");
}

void codeht( int i, string s )                    //   編碼過程 
{
    
if( ht[i].lchild== -1 )  
    {
        code[ ht[i].letter ]
= s;
    }
    
else
    {
        codeht( ht[i].lchild, s
+ '0' );
        codeht( ht[i].rchild, s
+ '1' );
    }
}

void decode( int i, int j )                      //   解碼過程 
{
    
if( ht[j].lchild== -1 && ht[j].rchild== -1 )
    {
        printf(
"%c", ht[j].letter+ 'A' );
        
if( str[i] ) decode( i, root );
    }
    
else if!str[i] ) return;
    
else if( str[i]== '0' )      decode( i+ 1, ht[j].lchild );
    
else if( str[i]== '1' )      decode( i+ 1, ht[j].rchild );
}

void buildtree()                                //   建樹過程 
{
    len
= 0;
    
forint i= 0; i< 26++i )
    
if( num[i] )
    {
        ht.push_back( HTNode( num[i], i, 
-1-1 ) );
        info.push( Info( num[i], i, len
++ ) );
    }
    
    
if( info.size()== 1 ) {  root= 0;  return;  }
    
    Info  a
= info.top();  info.pop();
    Info  b
= info.top();  info.pop();
    
    info.push( Info( a.num
+ b.num, -1, len++ ) );
    ht.push_back( HTNode( a.num
+ b.num, -1, a.id, b.id ) );
    
    
while( info.size()> 1 )
    {
        Info a
= info.top(); info.pop();
        Info b
= info.top(); info.pop();
        
        info.push( Info( a.num
+ b.num, -1, len++ ) );
        ht.push_back( HTNode( a.num
+ b.num, -1, a.id, b.id ) );
    }    
    
    root
= info.top().id;
}

int main()
{
    test();
    
    system(
"pause");
    
return 0;
}

/*

7 5 2 4 6

*/
posted on 2008-11-12 21:03 Darren 閱讀(300) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀av国产精品久久久久| 尤物网精品视频| 性欧美8khd高清极品| 亚洲免费成人| 中文国产一区| 新片速递亚洲合集欧美合集| 久久爱91午夜羞羞| 久久夜色精品| 欧美日韩激情小视频| 国产乱肥老妇国产一区二| 国产日韩精品一区二区| 狠狠综合久久av一区二区小说| 亚洲电影在线观看| 一区二区三区高清| 亚洲欧美视频| 久久婷婷蜜乳一本欲蜜臀| 国产专区一区| 99国产精品视频免费观看| 欧美一级视频精品观看| 欧美成人激情在线| 亚洲一区三区视频在线观看| 久久av资源网站| 欧美精品久久久久久久| 国产伦精品一区二区三区四区免费 | 欧美在线视频全部完| 老巨人导航500精品| 99riav国产精品| 久久久之久亚州精品露出| 欧美日韩成人激情| 在线免费高清一区二区三区| 亚洲欧美激情四射在线日| 欧美成人免费在线观看| 亚洲免费视频中文字幕| 牛人盗摄一区二区三区视频| 国产亚洲精品久| 一区二区三区免费网站| 欧美成人综合一区| 欧美影视一区| 国产精品一区二区三区久久久| 999亚洲国产精| 免费一区二区三区| 久久福利影视| 国产欧美一区视频| 亚洲在线中文字幕| 亚洲国产日韩欧美在线99| 欧美一进一出视频| 欧美四级在线观看| 亚洲人午夜精品| 久久精品国产精品亚洲精品| 亚洲国产精品一区二区第一页| 午夜欧美电影在线观看| 欧美日韩网址| 久久蜜臀精品av| 精品69视频一区二区三区| 午夜亚洲福利| 99av国产精品欲麻豆| 免费在线亚洲欧美| 亚洲人成网站影音先锋播放| 蜜臀久久久99精品久久久久久| 欧美在线视频不卡| 国产一区二区精品久久99| 久久精品1区| 久久国产99| 在线看视频不卡| 亚洲国产精品高清久久久| 久热精品视频在线观看一区| 亚洲成色777777女色窝| 美女免费视频一区| 麻豆久久久9性大片| 亚洲黄色免费电影| 亚洲全黄一级网站| 国产精品99免费看| 欧美在现视频| 可以免费看不卡的av网站| 久久综合伊人77777| 亚洲人妖在线| 亚洲激情成人| 欧美小视频在线| 欧美在线播放| 久久九九久精品国产免费直播| 亚洲电影av| 亚洲精品资源| 国产日韩精品一区| 欧美激情精品久久久久久变态 | 亚洲人成亚洲人成在线观看图片| 欧美精品一区二区在线观看| 午夜激情综合网| 久久久久91| 一区二区高清在线观看| 欧美亚洲综合网| 亚洲美女毛片| 羞羞答答国产精品www一本| 亚洲丰满少妇videoshd| 一区二区久久久久久| 国产婷婷成人久久av免费高清| 欧美电影在线播放| 国产精品亚洲аv天堂网| 欧美韩国在线| 国产日韩欧美在线一区| 亚洲激情另类| 国产亚洲精品v| 一区二区三区高清| 亚洲国产欧美另类丝袜| 亚洲视频在线观看| 亚洲精品免费一二三区| 午夜精品久久久久久久白皮肤 | 亚洲欧洲日韩在线| 国产亚洲精品久久久久婷婷瑜伽| 欧美激情一区二区三区在线 | 国内精品一区二区| av成人免费| 亚洲激情电影在线| 久久成人一区| 新狼窝色av性久久久久久| 欧美黄色片免费观看| 久久中文字幕一区| 国产精品推荐精品| 亚洲看片网站| 日韩午夜精品视频| 麻豆精品精品国产自在97香蕉| 欧美一区二区视频网站| 欧美日韩理论| 亚洲人永久免费| 亚洲精品123区| 久久久蜜桃精品| 免费在线亚洲| 在线免费观看日韩欧美| 久久久精品视频成人| 久久人人爽人人爽爽久久| 国产精品永久免费在线| 中文高清一区| 香蕉久久夜色精品国产使用方法| 欧美日韩国内| 一本色道久久综合亚洲二区三区| 久久亚洲一区二区| 欧美成人免费网站| 亚洲欧洲一区二区天堂久久| 快射av在线播放一区| 久久综合伊人| 在线免费观看成人网| 免费日本视频一区| 亚洲欧洲日本在线| 亚洲图片欧美午夜| 国产精自产拍久久久久久蜜| 亚洲网站在线| 久久成人久久爱| 一区在线观看| 欧美成va人片在线观看| 亚洲韩国一区二区三区| 一区二区三区欧美在线观看| 欧美日韩一区二区精品| 亚洲一级在线观看| 久久亚洲综合色| 亚洲乱码视频| 欧美午夜不卡影院在线观看完整版免费 | 黑人巨大精品欧美一区二区| 久久久精品国产一区二区三区| 免费在线观看日韩欧美| 亚洲欧洲精品一区二区三区不卡 | 亚洲高清不卡在线观看| 亚洲免费黄色| 国产精品看片你懂得| 欧美在线观看视频一区二区| 欧美99在线视频观看| 一本大道久久a久久精二百| 国产精品久久9| 久久久xxx| 99精品久久久| 久久久久免费观看| 一区二区三区精品视频| 国产日本欧美视频| 欧美国产在线视频| 亚洲欧美偷拍卡通变态| 欧美国产日韩一二三区| 亚洲免费在线| 91久久精品www人人做人人爽| 欧美视频一区二| 久久久久久自在自线| 一区二区三区视频在线看 | 亚洲制服欧美中文字幕中文字幕| 久久亚洲综合网| 亚洲伊人一本大道中文字幕| 一区二区在线免费观看| 国产精品xnxxcom| 免费不卡视频| 欧美一区二区视频观看视频| 亚洲美女中出| 你懂的视频一区二区| 欧美一区二区免费| 亚洲香蕉网站| 亚洲日本国产| 国产午夜精品理论片a级探花 | 久久亚洲免费| 欧美一级日韩一级| 一区二区三区四区五区精品视频| 久久久午夜视频| 久久国产日韩| 午夜精品一区二区三区四区| 激情成人综合网| 亚洲人妖在线|