chap binary trees /*binary tree node implementationpointers to children *class bstnode implements binnode private key key/key for this node private element/element for this node private bstnode left/pointer to left child private bstnode right/pointer to right child /*constructors *public bstnode({left right nullpublic bstnode(key ke valleft right nullkey kelement valpublic bstnode(key ke valbstnode lbstnode rleft lright rkey kelement val/*return and set the key value *public key key(return keypublic void setkey(key kkey /*return and set the element value *public element(return elementpublic void setelement( velement /*return and set the left child *public bstnode left(return leftpublic void setleft(bstnode pleft /*return and set the right child *public bstnode right(return rightpublic void setright(bstnode pright /*return true if this is leaf node *public boolean isleaf(return (left =null&(right =null)figure binary tree node class implementation as an example of tree that stores different information at the leaf and internal nodesconsider the expression tree illustrated by figure the expression tree represents an algebraic expression composed of binary operators such as additionsubtractionmultiplicationand division internal nodes store operatorswhile the leaves store operands the tree of figure represents the expression ( ac the storage requirements for leaf in an expression tree are quite different from those of an internal node internal nodes store one of small set of operatorsso internal nodes could store either small code identifying the operator or single byte for the operator' character symbol in contrastleaves must store variable names or numbers thusthe leaf node value field must be considerably