0% found this document useful (0 votes)
24 views

L10 BinaryTree

Uploaded by

Akash Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

L10 BinaryTree

Uploaded by

Akash Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Binary Tree

Instructor: Ashok Singh Sairam


Lecture Plan
• Tree
§ Definitions
§ Subtree, height, depth, etc
• Binary Tree
§ Types
§ Properties
§ Traversal

MA512: Data Structures and Algorithms


2
Definition: Tree
root node
• A tree (T) is a finite set of one or more nodes
§ specially designated node called root A
§ remaining nodes partitioned into

n ≥ 0 disjoint sets T1, T2,..,Tn, where B C


T2
each is a tree (recursive defn)
§ T1, T2,..,Tn are called subtrees D E F
of the root
• Degree of a node: #subtrees of the node T1
• Degree of a tree: Maximum of the degree of the nodes in
the tree

MA512: Data Structures and Algorithms


3
Subtree
• Subtree(x) : Consists of x and all
root node
its descendants, where x is the
root of the tree A
• descendants: any nodes that can
be reached via 1 or more edges B C
from this node T2
• ancestors: any nodes for which D E F
this node is a descendant
• T1

MA512: Data Structures and Algorithms


4
Internal and Leaf Node
• A tree (T) is an abstract data internal
root node

type nodes
§ one entry point called root
§ Each node is either a leaf or an
internal node
§ An internal node has 1 or more
children, nodes that can be
reached directly from that internal
node.
§ The internal node is said to be the leaf nodes
parent of its child nodes
MA512: Data Structures and Algorithms
5
Definition: Siblings, path length
root
• siblings: two nodes that
edge
have the same parent
• edge: the link from one
node to another
• path length: the number
of edges that must be siblings
traversed to get from
one node to another

path length from root to this


node is 3
MA512: Data Structures and Algorithms
6
Definition: Depth, height
• Depth: path length from the root of the tree to this node
• Height of a node: The maximum distance (path length) of
any leaf from this node
§ a leaf has a height of 0

§ the height of a tree is the height of the root of that tree

• Height of tree (h): height of root

MA512: Data Structures and Algorithms


7
Example: Depth and Height
• What is the depth and height of node M, J and D?

MA512: Data Structures and Algorithms


8
Level of a node
• Level(root) = 1
• Level(node)=I+1, I is the level of the node’s parent
Level 1 A
Level 2 B C D
Level 3 G H I J
E F
Level 4 K L M
Level 5 N O
MA512: Data Structures and Algorithms
9
Binary Tree
• A finite set of nodes that either is empty or
consists of a root and two disjoint binary trees –
left and right subtree (aka as rooted BT)
§ each node has at most two children
• In general a node has a link to parent, a pointer to
left child and a pointer to right child
parent

left child right child


MA512: Data Structures and Algorithms
10
Binary Tree vs. Regular Tree
Characteristic Binary Tree Regular Tree
Yes No
Order of Important Doesn’t
children matter

A A

B B
Fig.: Different binary trees

MA512: Data Structures and Algorithms


11
Special Binary Trees
• Skewed binary tree
• Full Binary Tree
• Complete Binary Tree
A A

B
B

C C

D D

Fig 1: Skewed to the left Fig 2: Skewed to the right


MA512: Data Structures and Algorithms
12
Full Binary Tree
• Full binary tree: Each node is either a leaf or has
degree exactly two

MA512: Data Structures and Algorithms


13
Complete Binary Tree
• Complete binary tree: A binary tree of depth k
with 2k-1 nodes
§ That is a binary tree which has maximum nodes
• Also know as Full Tree
1
Height of a complete BT with
2 3
n nodes?
4 5 6 7

MA512: Data Structures and Algorithms


14
Nearly Complete Binary Tree

• Nearly Complete binary tree: a binary tree of


depth k with n nodes is called complete iff its
nodes correspond to the nodes numbered from 1
to n in the full binary tree
§ That is every level, except possibly the deepest is
1
completely filled.
§ At depth n, the height of the tree, 2 3

all nodes are as far left as possible


4 5

MA512: Data Structures and Algorithms


15
Property 1: Maximum Internal
nodes in complete binary tree
• A complete binary tree has 2h-1 internal nodes
• Maximum #nodes in binary tree of depth i = 2i

--- depth 0 --- 20

--- depth 1 --- 21

--- depth 2 --- 22


________________________________
1 + 21 + 22 + ….. 2h-1=(2h-1)

MA512: Data Structures and Algorithms


16
Property 2: Relation between #leaf node
and degree 2 nodes
• n0: #leaf nodes n2: #degree 2 node
• n0=n2+1

MA512: Data Structures and Algorithms


17
Representation of Trees
A(1)
A(1)

C(3)
B(2)
B(2)

D(4) E(5) F(6) G(7)


D(4)

H(8)
H(8)
1 2 3 4 5 6 7 8 … 1 2 3 4 5 6 7 8 …
A B C D E F G H .. A B D H ..
• The numbering scheme suggest that we can use a 1-D
array to store the nodes

MA512: Data Structures and Algorithms


18
Representation of Trees: Arrays

MA512: Data Structures and Algorithms


19
Representation of Trees: Linked
• Linked Representation Data

§ Similar to linked list


lchild rchild
§ Each tree consists of three
fields – lchild, data, rchild
A A
struct node{
struct node *lchild; B B Null
int data;
C D
C D
struct node *rchild;
}; Null Null Null Null

MA512: Data Structures and Algorithms


20
Representation of Trees: Left Child –
Right Sibling
• Left Child - Right Sibling
§ Each node has exactly A
two link fields B C D
§ Left link (child): points to
leftmost child node E F G H I J
§ Right link (sibling):
points to closest K L M
sibling node

MA512: Data Structures and Algorithms


21
Binary Tree Traversals
• Traversing a tree means visiting each node exactly
once
§ Treat each node and its subtrees in the same fashion
§ Let L, V, and R stand for moving left, visiting
the node, and moving right
§ There are six possible combinations of traversal
- LVR, LRV, VLR, VRL, RVL, RLV
§ Adopt convention that we traverse left before
right, only 3 traversals remain
§ LVR (inorder), LRV (postorder), VLR (preorder)

MA512: Data Structures and Algorithms


22
Inorder Traversal
Recursive version void inorder(tree *ptr)
1. Move down the tree /* inorder tree traversal */
{
towards the left until you if (ptr) {
can go down no further inorder(ptr->lchild);
printf(“%d”, ptr->data);
2. Visit the node inorder(ptr->rchild);
3. Move one node to the }
}
right and continue with
step 1

MA512: Data Structures and Algorithms


23
Successor in traversal order
• Successor(X) : Node which comes next after X in
the inorder traversal A

B C

D E F
• Predecessor(X): Node which comes before X in the
inorder traversal

MA512: Data Structures and Algorithms


24
Preorder Traversal
Recursive version void preorder(tree *ptr)
1. Visit the node /* preorder tree traversal */
{
2. Move one node to the if (ptr) {
left and go step 1, printf(“%d”, ptr->data);
preorder(ptr->lchild);
continue until you can go preorder(ptr->rchild);
down no further }
}
3. Move one node to the
right and continue with
step 1

MA512: Data Structures and Algorithms


25
Postorder Traversal
Recursive version void postorder(tree *ptr)
1. Move down the tree /* postorder tree traversal */
{
towards the left until you if (ptr) {
can go down no further postorder(ptr->lchild);
postorder(ptr->rchild);
2. Move one node to the printf(“%d”, ptr->data);
right
}
3. Visit the node and }
continue with step 1

MA512: Data Structures and Algorithms


26
Example: Tree Traversal
• Inorder – 4, 10, 12, 15, 18, 22, 24, 25, 31, 35, 44, 50, 66,
70, 90
• Preorder – 25, 15, 10, 4, 12, 22, 18, 24, 50, 35, 31, 44, 70,
66, 90
• Postorder – 4, 12, 10, 18, 24, 22, 15, 31, 44, 35, 66, 90, 70,
50, 25

MA512: Data Structures and Algorithms


27
Exercise
• Show by induction that any binary tree of height h has at
most 2h leaves

MA512: Data Structures and Algorithms


28

You might also like