字符集编码的存储结构及其算法描述.txt

来自「字符集编码的存储结构及其算法描述」· 文本 代码 · 共 24 行

TXT
24
字号
typedef struct {
      char ch; //存储字符
      char bits[n+1]; //存放编码位串
    }CodeNode;
  typedef CodeNode HuffmanCode[n]; 
  void CharSetHuffmanEncoding(HuffmanTree T,HuffmanCode H)
     {//根据哈夫曼树T求哈夫曼编码表H
      int c,p,i;//c和p分别指示T中孩子和双亲的位置
      char cd[n+1]; //临时存放编码
      int start; //指示编码在cd中的起始位置
      cd[n]='\0'; //编码结束符
      for(i=0,i<n,i++){ //依次求叶子T[i]的编码
         H[i].ch=getchar();//读入叶子T[i]对应的字符
         start=n; //编码起始位置的初值
         c=i; //从叶子T[i]开始上溯
         while((p=T[c].parent)>=0){//直至上溯到T[c]是树根为止
               //若T[c]是T[p]的左孩子,则生成代码0;否则生成代码1
            cd[--start]=(T[p).1child==C)?'0':'1';
            c=p; //继续上溯
           }
         strcpy(H[i].bits,&cd[start]); //复制编码位串
       }//endfor
      }//CharSetHuffmanEncoding

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?