www.pudn.com > Huffman.rar > huffman_a.h
#ifndef _HUFFMAN_A_HEADER_001_ #define _HUFFMAN_A_HEADER_001_ #include "huffman_base.h" #includeusing namespace std; // 使用链表结构生成Huffman树的算法,这是最基本的实现方法,效率最低 class huffman_a : public huffman_base { public: huffman_a() {} virtual ~huffman_a(void) {} public: typedef struct HTNode_T { unsigned long weight; HTNode_T* parent; HTNode_T* lchild; HTNode_T* rchild; }HTNode, *HuffmanTree; public: void generate_codes(int num, const unsigned long* weights); protected: // 在s[0..n]中选择weight最小且parent为NULL的两个,返回其位置iterator void select(HuffmanTree* s, int n, int& s1, int& s2); // 递归释放Huffman树占用的空间 void free_tree(HuffmanTree tree); }; #endif