00001 #ifndef __J2K__Huffman_Tree_HPP__ 00002 #define __J2K__Huffman_Tree_HPP__ 00003 00004 #include <j2k/DataType/Link/BinNode.hpp> 00005 00006 // Need LettFreq and BinNode 00007 00008 class HuffTree { 00009 public: 00010 inline HuffTree( LettFreq* val ) 00011 { 00012 rt = new BinNode(val, NULL, NULL); 00013 } 00014 00015 inline HuffTree( LettFreq* val, HuffTree* leftree, HuffTree* rightree ) 00016 { 00017 rt = new BinNode(val, leftree->rt, rightree->rt); 00018 } 00019 00020 virtual ~HuffTree() { } 00021 00022 inline BinNode* root() 00023 { 00024 return rt; 00025 } 00026 00027 inline int weight() 00028 { 00029 return rt->value()->weight(); 00030 } 00031 00032 private: 00033 BinNode* rt; // Root of the Huffman coding tree 00034 };