binary trees the list representations of have fundamental limitationeither search or insert can be made efficientbut not both at the same time tree structures permit both efficient access and update to large collections of data binary trees in particular are widely used and relatively easy to implement but binary trees are useful for many things besides searching just few examples of applications that trees can speed up include prioritizing jobsdescribing mathematical expressions and the syntactic elements of computer programsor organizing the information needed to drive data compression algorithms this begins by presenting definitions and some key properties of binary trees section discusses how to process all nodes of the binary tree in an organized manner section presents various methods for implementing binary trees and their nodes sections through present three examples of binary trees used in specific applicationsthe binary search tree (bstfor implementing dictionariesheaps for implementing priority queuesand huffman coding trees for text compression the bstheapand huffman coding tree each have distinctive features that affect their implementation and use definitions and properties binary tree is made up of finite set of elements called nodes this set either is empty or consists of node called the root together with two binary treescalled the left and right subtreeswhich are disjoint from each other and from the root (disjoint means that they have no nodes in common the roots of these subtrees are children of the root there is an edge from node to each of its childrenand node is said to be the parent of its children if nk is sequence of nodes in the tree such that ni is the parent of ni+ for < kthen this sequence is called path from to nk the length