Java Reference
In-Depth Information
/ ** Huffmantreenodeimplementation:Baseclass * /
publicinterfaceHuffBaseNode<E>{
publicbooleanisLeaf();
publicintweight();
}
/ ** Huffmantreenode:Leafclass * /
classHuffLeafNode<E>implementsHuffBaseNode<E>{
privateEelement; //Elementforthisnode
privateintweight; //Weightforthisnode
/ ** Constructor * /
publicHuffLeafNode(Eel,intwt)
{element=el;weight=wt;}
/ ** @returnTheelementvalue * /
publicEelement(){returnelement;}
/ ** @returnTheweight * /
publicintweight(){returnweight;}
/ ** Returntrue * /
publicbooleanisLeaf(){returntrue;}
}
/ ** Huffmantreenode:Internalclass * /
classHuffInternalNode<E>implementsHuffBaseNode<E>{
privateintweight; //Weight(sumofchildren)
privateHuffBaseNode<E>left;//Pointertoleftchild
privateHuffBaseNode<E>right;//Pointertorightchild
/ ** Constructor * /
publicHuffInternalNode(HuffBaseNode<E>l,
HuffBaseNode<E>r,intwt)
{left=l;right=r;weight=wt;}
/ ** @returnTheleftchild * /
publicHuffBaseNode<E>left(){returnleft;}
/ ** @returnTherightchild * /
publicHuffBaseNode<E>right(){returnright;}
/ ** @returnTheweight * /
publicintweight(){returnweight;}
/ ** Returnfalse * /
publicbooleanisLeaf(){returnfalse;}
}
Figure5.27 Implementation for Huffman tree nodes. Internal nodes and leaf
nodes are represented by separate classes, each derived from an abstract base class.
Search WWH ::




Custom Search