从书上摘抄过来。算法
哈夫曼树是二叉树的一个应用实例,它是一种变长码。它的出现是为了提升数据存储和数据通讯的效率,一般对数据进行压缩编码,对下降系统成本和功耗方面有意义。编码
对哈夫曼树的使用须要注意些地方。code
typedef struct Node2 { char ch; struct Node2 *lchild; struct Node2 *rchild; }BTNode2; BTNode2 *Huffman; int ERROR; void Decode() { BTNode2 *p; int a; p = Huffman; ERROE = 0; while(1) { a = Getbit(); if(a == -1) return; if(a == 1) p->rchild; else p = p->lchild; if(p == NULL) { ERROR = 1; return; } if(p->lchild == NULL && p->rchild == NULL) { Outch(p->ch); p = Huffman; } } }