亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hf.cpp

?? 哈夫曼樹是一種帶權(quán)路徑長度最短的樹。 所謂路徑長度就是某個端結(jié)點到樹的根結(jié)點的距離,等于該端結(jié)點的祖先數(shù),或該結(jié)點所在層數(shù)減1,用lk表示。
?? CPP
字號:
#include<conio.h>
#include<stdio.h>
#include<malloc.h>
#define n  100
int h[50],m[50];
int i=0,j=0,v=1,t=1;   /*用來標(biāo)記huffman樹的深度*/
int k=195,K=192,chp=179,chr=27; /*輸出huffman時用到的字符*/
int huffrecod=0;         /*用于記錄huffman的編碼與字符的個數(shù)*/
typedef struct Lnode{            /*用來記錄字符的個數(shù)*/
char code;
int  values;
struct Lnode *next;
}Lnode,*listnode;

typedef struct charhuffman{   /*用來記錄字符的huffman編碼序列*/
char code;
int huffuman[15];
int count; /*記錄編碼的個數(shù)*/
}charhuffman,*huffmanchar;

typedef struct treenode{ /*二叉樹的構(gòu)造體*/
char code;
int values;
struct treenode *lchild;
struct treenode *rchild;
}treenode,*ntree;

typedef struct queuenode/*隊列的構(gòu)造體*/
{
  int values;
  struct treenode *pntree;
  struct queuenode *next;
}queuenode,*listqueue;

huffmanchar huff;

listqueue returnroot(listnode heap)
{
 listqueue s,t,k;
 ntree p;
 s=(listqueue)malloc(sizeof(queuenode)); /*建立隊列的頭結(jié)點*/
 k=s;
 s->values=0; s->pntree=NULL; s->next=NULL;
 while(heap!=NULL)
 {
  p=(ntree)malloc(sizeof(treenode));
  p->code=heap->code;
  p->values=heap->values;p->lchild=NULL;p->rchild=NULL;
  t=(listqueue)malloc(sizeof(queuenode));
  t->values=heap->values;
  t->pntree=p; s->next=t; t->next=NULL;
  s=s->next;
  heap=heap->next;
 }
return k;
}

listnode creatleaflist(char s[])  /*輸入字符序列,確定葉子結(jié)點及權(quán)值*/
{listnode heap,p,r;
 int i,j=0; 
 p=(listnode)malloc(sizeof(Lnode));
 heap=p;
 p->next=NULL;p->code=s[0];p->values=1;
  while(s[j]!=NULL)
 {for(i=0;i<j;i++)
  { if(s[i]==s[j])
    { r=heap;
      while(s[i]!=r->code)
      r=r->next;
      if(s[i]==r->code)
         r->values++; 
      break;    
      }/*if(s[i]==s[j])*/
     else
      {  if(i==(j-1))
        {
         r=(listnode)malloc(sizeof(Lnode));
         p->next=r;r->next=NULL;
         p=p->next;p->code=s[j];p->values=1;
         break;
        }/*if(i==(j-1))*/
      }
    }/*for(i=0;i<j;i++)*/
  j++;
 } /*while(s[j]!=NULL)*/
return heap;
}

listqueue heaplistqueue(listqueue heapqueue) /*確定哈曼樹*/
{listqueue pk,pks,rs,rss,freep;
  int a,b,i,j;
  ntree pa,pb,ps;
  pk=heapqueue;
  pks=heapqueue;
  while(pk->next->next!=NULL)
  { i=0,j=0; /*用來確定是否刪除最小兩權(quán)植的結(jié)點*/
    pks=pks->next;
    a=pks->values;
    b=pks->next->values;
    while(pks->next!=NULL) /*找到最小兩個權(quán)值*/
    {pks=pks->next;
     if(a>pks->values){b=a;a=pks->values;}
     else{if(b>pks->values) b=pks->values;}
    }
    rs=pk;
    heapqueue=rs->next;
    while(heapqueue!=NULL)
    { if(heapqueue->values==a&&i==0)
        {pa=heapqueue->pntree;
          rs->next=heapqueue->next;
          freep=heapqueue;
          free(freep);
          heapqueue=rs->next;
          i=1;       
        }else
         {if(heapqueue->values==b&&j==0)
          {pb=heapqueue->pntree;
           rs->next=heapqueue->next;
           freep=heapqueue;
           free(freep);
           heapqueue=rs->next;
           j=1;
          }else
             {rs=heapqueue;
              heapqueue=heapqueue->next;
             } 
         } 
    }/*while(heapqueue!=NULL)*/
    heapqueue=rs;
    ps=(ntree)malloc(sizeof(treenode));
    ps->code=‘‘;ps->lchild=pa;ps->rchild=pb;ps->values=a+b;
    rss=(listqueue)malloc(sizeof(queuenode));
    rss->values=a+b;
    rss->pntree=ps; 
    heapqueue->next=rss;
    rss->next=NULL;
    pks=pk;
   }
 return pk;
}

void printdata(ntree heaptree)  /*輸出哈夫曼編碼及輸出哈夫曼樹*/
{
 int j;
 if(heaptree->code!=‘‘)
  {printf("%d",heaptree->values);
   printf(" %c",chr);
   printf("%c",heaptree->code);
   printf("--(");
   huff[huffrecod].code=heaptree->code;
   huff[huffrecod].count=i;
   for(j=0;j<i;j++){
     huff[huffrecod].huffuman[j]=h[j];
     printf("%d",h[j]);
     }
   printf(")\n");
   huffrecod++;
   i--;
  }
  else
  {h[i++]=0;
   v=i;
   printf("%d\n",heaptree->values);
   while(--v)
   printf("%c ",chp);
   printf("%c ",k);
   printdata(heaptree->lchild);
   h[i++]=1;
   t=i;
   while(--t)
   printf("%c ",chp);
   printf("%c ",K);
   printdata(heaptree->rchild);
   i--;
  }
}

void encode(char s[],huffmanchar huff)
{ int nt=0;
  int hfcount;
  int ihuff;
  while(s[nt]!=NULL)
  { for(ihuff=0;ihuff<50;ihuff++)
    { if(s[nt]==huff[ihuff].code)
      {for(hfcount=0;hfcount<huff[ihuff].count;hfcount++)
        {printf("%d",huff[ihuff].huffuman[hfcount]);
        }
        break;
      }
    }
    nt++;
  }
}

void main()
{ 
 int i=0,j=0;
 char s[n],c;
 listnode heap; /*確定葉子結(jié)點*/  
 ntree heaptree; /*確定哈夫曼樹*/
 listqueue heapqueue,pk;
 huff=(huffmanchar)malloc(50*sizeof(charhuffman));
 gotoxy(30+wherex(),wherey());
 textcolor(BLACK); 
 textbackground(WHITE); 
 cprintf("This huffman program\r\n");
 printf("please input char list and in Enter of end!:\n\n");
 c=getchar();
 if(c==‘\n‘)
 exit(0);
 while(c!=‘\n‘)
 {s[i++]=c;
  c=getchar();
  }
 heap=creatleaflist(s);
 heapqueue=returnroot(heap);
 printf("\nthe chars appear of frequency:\n");
 while(heap!=NULL)
 {printf("%c%d\t",heap->code,heap->values);
  heap=heap->next;
  } 
 printf("\n");
 pk=heaplistqueue(heapqueue);
 printf("\nthe huffman:\n");
 printdata(pk->next->pntree);
 printf("\nthe char coding:\n");
 for(j=0;j<huffrecod;j++)
 { printf("%c-",huff[j].code);
   for(i=0;i<huff[j].count;i++)
   {printf("%d",huff[j].huffuman[i]);}
   printf("\t");
  }
 printf("\nthe chars encode:\nSTART--<");
 encode(s,huff);
 printf(">--END");
 getch();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a美女胸又www黄视频久久| 欧美在线一二三| 欧美在线观看视频一区二区三区| 制服丝袜成人动漫| 亚洲国产精品国自产拍av| 日韩精品欧美精品| 色综合色综合色综合色综合色综合| 日韩亚洲欧美综合| 亚洲国产一区二区在线播放| 成人国产精品免费观看动漫 | 欧美日本韩国一区| 成人欧美一区二区三区黑人麻豆| 国内精品久久久久影院薰衣草 | 一区二区视频在线| 国产精品白丝jk黑袜喷水| 欧美日韩夫妻久久| 一区二区三区成人| 99国产精品久久久久久久久久| 日韩欧美国产精品一区| 亚洲va天堂va国产va久| 色综合网站在线| 国产精品私房写真福利视频| 日本网站在线观看一区二区三区 | 国产精品一区免费在线观看| 制服丝袜亚洲播放| 午夜精品久久久久久不卡8050| 91在线你懂得| 亚洲精品日日夜夜| 一本到一区二区三区| 中文字幕一区二区三区av| 国产精品羞羞答答xxdd| 国产日韩精品一区二区浪潮av | 亚洲成av人片一区二区三区| 色一情一乱一乱一91av| 亚洲视频1区2区| 在线观看日韩电影| 亚洲一区二区三区精品在线| 欧美少妇bbb| 天天av天天翘天天综合网| 91精品国产综合久久精品app| 日韩精品一级中文字幕精品视频免费观看| 欧美午夜在线观看| 日韩成人av影视| 欧美va亚洲va香蕉在线| 国产一区二区免费视频| 欧美国产欧美综合| 在线观看成人小视频| 亚洲成av人综合在线观看| 欧美一区二区三级| 国产成人免费视| 1000精品久久久久久久久| 91行情网站电视在线观看高清版| 亚洲自拍偷拍综合| 日韩欧美色电影| 丁香天五香天堂综合| 亚洲欧美日韩中文字幕一区二区三区| 欧美自拍丝袜亚洲| 久久av中文字幕片| 亚洲同性同志一二三专区| 欧美午夜在线观看| 韩国av一区二区三区在线观看| 久久你懂得1024| 色婷婷香蕉在线一区二区| 青青草原综合久久大伊人精品优势| 精品av久久707| 91美女视频网站| 麻豆国产精品一区二区三区| 中文字幕精品一区二区精品绿巨人 | 美女视频第一区二区三区免费观看网站| 欧美一级淫片007| 波多野结衣在线一区| 视频一区二区不卡| 国产精品午夜免费| 91精选在线观看| 99久久久无码国产精品| 美女一区二区视频| 一区二区三区欧美视频| 久久综合狠狠综合久久激情| 欧美午夜影院一区| 不卡视频免费播放| 激情五月婷婷综合| 亚洲不卡av一区二区三区| 国产欧美综合色| 欧美电影免费观看高清完整版在线 | 亚洲电影激情视频网站| 国产欧美日韩卡一| 日韩一区二区精品在线观看| 97久久超碰国产精品| 国产一区二区三区av电影| 视频一区中文字幕| 一区二区三区日韩欧美精品| 中文字幕av一区二区三区高 | 国产农村妇女精品| 欧美一区二区观看视频| 一本大道av一区二区在线播放| 国产一区二区三区黄视频 | av亚洲精华国产精华| 久久精品国产精品亚洲精品| 亚洲综合网站在线观看| 国产精品毛片高清在线完整版| 欧美r级电影在线观看| 欧美精品乱码久久久久久| 色综合 综合色| 91蜜桃婷婷狠狠久久综合9色| 国产成人啪免费观看软件| 国产一区在线观看视频| 久久成人麻豆午夜电影| 午夜精品久久一牛影视| 一区二区中文字幕在线| 中文字幕高清一区| 欧美激情综合在线| 国产亚洲精品免费| 国产拍揄自揄精品视频麻豆| 久久久久久久电影| 国产偷国产偷精品高清尤物| 久久久精品蜜桃| 久久久美女毛片| 国产欧美日韩三区| 国产精品理论片| 亚洲色图视频网| 亚洲人午夜精品天堂一二香蕉| 国产精品亲子乱子伦xxxx裸| 中文字幕乱码日本亚洲一区二区| 中文字幕精品一区二区精品绿巨人| 日本一区二区三级电影在线观看| 国产清纯在线一区二区www| 中文字幕欧美区| √…a在线天堂一区| 亚洲一区二区精品3399| 亚洲成人动漫在线观看| 午夜激情一区二区三区| 日本麻豆一区二区三区视频| 久久国产精品一区二区| 国产成人av影院| 91日韩一区二区三区| 欧美日韩电影在线播放| 日韩欧美成人午夜| 国产精品天美传媒| 一区二区在线观看不卡| 日本美女一区二区三区视频| 狠狠色丁香久久婷婷综合_中| 国产福利一区二区三区| 99久久婷婷国产综合精品| 欧美丝袜丝交足nylons图片| 日韩欧美亚洲国产精品字幕久久久| 久久久蜜臀国产一区二区| 亚洲色图视频网站| 蜜桃传媒麻豆第一区在线观看| 国产精品一二三四区| 日本乱人伦一区| 精品av久久707| 一区二区三区影院| 国产做a爰片久久毛片| 色婷婷综合久色| 精品久久久久av影院 | 成人高清视频在线| 欧美精品高清视频| 中文字幕欧美激情| 男人的天堂亚洲一区| www.欧美日韩| 日韩欧美在线影院| 亚洲欧美日韩在线| 久草精品在线观看| 欧美午夜精品一区| 国产精品午夜春色av| 日本vs亚洲vs韩国一区三区| 成人午夜av电影| 精品国产乱码久久久久久浪潮| 最新中文字幕一区二区三区| 麻豆精品一区二区三区| 色噜噜狠狠色综合中国| 久久久美女毛片| 免费成人在线影院| 在线亚洲欧美专区二区| 国产日韩影视精品| 久久疯狂做爰流白浆xx| 在线观看国产91| 亚洲免费观看高清完整版在线| 国产剧情一区在线| 日韩精品一区二区三区蜜臀| 亚洲一级电影视频| 91麻豆免费看| 亚洲欧美视频一区| 成人高清视频免费观看| 久久久久国产免费免费| 蜜桃精品在线观看| 91精品国产免费| 亚洲一区视频在线| 色哟哟一区二区三区| 一区在线播放视频| 成人av网在线| 国产精品国产三级国产aⅴ入口 | 精品sm在线观看| 激情综合一区二区三区| 日韩午夜在线观看| 免费的国产精品| 日韩免费视频线观看| 老司机精品视频一区二区三区| 欧美一级久久久久久久大片| 日韩av一区二区三区四区|