You are on page 1of 13

# Binary Search Trees

A binary tree:
No node has more than two child nodes (called child
subtrees).
Child subtrees must be differentiated, into:
Left-child subtree
Right-child subtree
A search tree:
For every node, p:
All nodes in the left subtree are < p
All nodes in the right subtree are > p
Binary Search Tree - Example

Alex
Alex
Angela
Angela Abner
Abner
Abigail
Abigail
Agnes
Alice
Alice
Allen
Allen
Audrey
Audrey
Arthur
Arthur
Binary Search Trees (cont)
Searching for a value is in a tree of N nodes
is:
O(log N) if the tree is balanced
O(N) if the tree is unbalanced
Unbalanced Binary Search Trees
Below is a binary search tree that is NOT
balanced

Alex
Alex
Angela
Angela
Abner
Abigail
Abigail
Abner
Agnes
Agnes
Alice
Alice
Allen
Allen
Audrey
Audrey
Arthur
Arthur
Properties of Binary Trees
A binary tree is a full binary tree if and only
if:
Each non leaf node has exactly two child nodes
All leaf nodes have identical path length
It is called full since all possible node slots
are occupied
A Full Binary Tree - Example

Full Binary Trees
A Full binary tree of height h will have
how many leaves?

A Full binary tree of height h will have
how many nodes?
Complete Binary Trees
A complete binary tree (of height h)
satisfies the following conditions:
Level 0 to h-1 represent a full binary tree of
height h-1
One or more nodes in level h-1 may have 0, or
1 child nodes
If j,k are nodes in level h-1, then j has more
child nodes than k if and only if j is to the left
of k
Complete Binary Trees - Example

B
B
A
A
C
C
D
D
E
E
H
H
I
I
J
J
K
K
F
F
G
G
Figure 13.8 A complete binary tree Figure 13.8 A complete binary tree
Complete Binary Trees (cont)
Given a set of N nodes, a complete binary
tree of these nodes provides the maximum
number of leaves with the minimal average
path length (per node)
The complete binary tree containing n
nodes must have at least one path from root
to leaf of length log n
Height-balanced Binary Tree
A height-balanced binary tree is a binary
tree such that:
The left & right subtrees for any given node
differ in height by no more than one
Note: Each complete binary tree is a height-
balanced binary tree
Height-balanced Binary Tree - Example

N
M
N-M<=1
Height balanced is a local property