從書上摘抄過來。算法
哈夫曼樹是二叉樹的一個應用實例,它是一種變長碼。它的出現是爲了提升數據存儲和數據通訊的效率,一般對數據進行壓縮編碼,對下降系統成本和功耗方面有意義。編碼
對哈夫曼樹的使用須要注意些地方。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; } } }