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
Abner
Abner Angela
Angela

Abigail
Abigail Adela
Adela Alice
Alice Audrey
Audrey

Adam Agnes
Agnes Allen Arthur
Adam Allen 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”
Abigail
Abigail

Adam
Abner

Abner
Adam Adela
Adela

Agnes
Agnes

Alex
Alex

Alice
Alice

Allen
Allen

Angela
Angela

Arthur
Arthur

Audrey
Audrey
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?
leaves

• A Full binary tree of height h will have


how many nodes?
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
AA

BB CC

DD EE FF GG

HH II JJ KK

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


Advantages of Height-balanced Binary Trees

• Height-balanced binary trees are “balanced”


• Operations that run in time proportional to
the height of the tree are O(log n), n the
number of nodes with limited performance
variance
• Variance is a very important concern in real
time applications, e.g. connecting calls in a
telephone network

You might also like