Disclaimer: This presentation is prepared by trainees ofbaabtra as a part of mentoring program. This is not officialdocument of baabtra –Mentoring PartnerBaabtra-Mentoring Partner is the mentoring division of baabte System Technologies Pvt .Ltd
Binary TreesARUN KUMAR K Aarunkumar3040@gmail.comwww.facebook.com/arunkumar3040twitter.com/arunkumar3040in.linkedin.com/in/arunkumar3040+919496349799
Tree Terminology• A tree consists of a collection of elements ornodes, with each node linked to its successors• The node at the top of a tree is called its root• The links from a node to its successors arecalled branches• The successors of a node are called its children• The predecessor of a node is called its parent
Tree Terminology (continued)• Each node in a tree has exactly one parentexcept for the root node, which has no parent• Nodes that have the same parent are siblings• A node that has no children is called a leafnode
Binary Trees•A tree in which no node can have more thantwo children.
Example: Expression Trees• Leaves are operands (constants or variables)• The other nodes (internal nodes) containoperators• Will not be a binary tree if some operators arenot binary
Example: Expression TreesExpression tree for ( a + b * c ) + ( ( d * e + f ) * g
Binary Tree Traversal• Traversal is the process of visiting every nodeonce• 3 types of traversals*Inorder*Preorder*Postorder
Preorder traversalExpression tree for ( a + b * c ) + (( d * e + f ) * g•root, left, right•prefix expression++a*bc*+*defg
Inorder traversalExpression tree for ( a + b * c ) +( ( d * e + f ) * g• left, root, right•infix expressiona+b*c+d*e+f*g
Postorder traversalExpression tree for ( a + b * c ) + (( d * e + f ) * g• left, right, root•postfix expressionabc*+de*f+g*+
InsertProceed down the tree as you would find a close matchIf X is found, do nothing (or update something)Otherwise, insert X at the last spot on the path traversed
DeleteConsider children of deleted nodeProperty of the search tree should be maintained.Three cases:(1) the node is a leaf– Delete it immediately(2) the node has one child– Adjust a pointer from the parent to bypass that node
Delete(3) the node has 2 children– replace the key of that node with the minimum element at theright subtree– delete the minimum element• Has either no child or only right child because if it has a left child, thatleft child would be smaller and would have been chosen. So invokecase 1 or 2.