//HuffTree is a template of two parameters: the element //type being coded and a comparator for two such elements template class HuffTree { private: HuffNode* Root; public: HuffTree(E& val, int freq) //leaf constructor { Root = new LeafNode(val,freq); } //internal node constructor HuffTree(HuffTree* l, HuffTree* r) { Root = new IntlNode(l-root(),r->root()); } ~HuffTree() {} HuffNode* root() {return Root;} int weight() {return Root->weight();} };