SDSU CS 660: Combinatorial Algorithms
Intro To Binary Search Trees

[To Lecture Notes Index]
San Diego State University -- This page last updated Sept. 18, 1995
----------

Contents of BST Lecture

  1. References
  2. Search Trees
    1. Tree Operations - Performance
    2. General Terms

References


Introduction to Algorithms by Cormen, Leiserson, Rivest. Chapter 13

Data Structures and Algorithms 1: Sorting and Searching, Mehlhorn, Kurt, pages 174-177

Search Trees



Access (k, t): Return the item in tree t with key k; if no item in t has key k, return null

Insert (j, t): Insert item j into t, not previously containing j

Delete (j, t): Delete item j from t


Minimum (t): Return the item in t with the smallest key

Maximum (t): Return the item in t with the largest key

Successor (k, t): Return the item in t with the smallest key larger than k

Predecessor (k, t): Return the item in t with the largest key smaller than k


Join (a, i, b): Return tree formed by combining tree a, item i, and tree b. Assumes that every item in a has key less then key(i) and every item in b has key larger than key(i)

Split (i, s): Split tree s, containing item i, into three trees: a, containing all items with key less than key(i); single tree i; and b, containing all items with key greater than key(i)

Types of Algorithms

Off-line
Totally balanced BST
Know all items in list
Minimize worst case search
Optimum BST
Know all items and probability of access
Minimize total search cost over all access


On-line
Balanced BST (Weight, Height), Skip lists
Add items as they show up
Minimize worst case search
Self-Adjusting BST
Modify tree based on access pattern

Tree Operations on BST
Access, Minimum, Maximum, Successor, Predecessor, Insert



Tree Operations
Delete
Case 1 Delete leaf
Delete(20)
Tree Operations
Delete
Case 2 Delete node with one child
Delete(7)
Tree Operations
Delete
Case 3 Delete node with two children
Delete(6)

Tree Operations - Performance


Theorem
The operations Access, Minimum, Maximum, Successor, Predecessor, Insert, and delete run in O(h) on a BST of height h

Randomly Built BST


Assume that we have n distinct keys in random order

Each n! permutations of the input keys is equally likely

Insert the keys in an empty tree, using random order


Theorem
The average height of a randomly built BST on n distinct keys is O( lgn )

General Terms


We have a list of n items: a1, a2, ..., an in BST

Probability of accessing item ak is P(ak) = Alphak

Let Betak be the probability of accessing a key that is between ak and ak+1

Let bk be the leaf between ak and ak+1

Betak is the probability of accessing leaf bk

Ordered by keys we have , b0< a1 <b1< a2 < ... < an < bn

(Beta0 ,Alpha1 ,Beta1 , Alpha2, Beta2,... , Alphan, Betan)1 is called the access distribution

Let

Weighted path length of a tree

Let D(ak) = depth of node ak

Define the weighted path length of tree T as:



is the average number of comparisons in a search of T
Entropy

Let (Gamma1 ,Gamma2,... , Gamman) be a discrete probability distribution, i.e.

Gammak >= 0 and SigmaGammak =1


H(Gamma1 ,Gamma2,... , Gamman) =

is the entropy of the distribution.


Use convention that 0*lg 0 = 0

Lower bound on weighted Path Length

We have a list of n items: a1, a2, ..., an in BST

Probability of accessing item ak is P(ak) = Alphak

Let bk be the leaf between ak and ak+1

Betak is the probability of accessing leaf bk

Let

H = H(Beta0 ,Alpha1 ,Beta1 , Alpha2, Beta2,... , Alphan, Betan)

P =

Theorem 5[2] For any BST we have:
a)
b)

Self Organizing Linear List and BST

Is there the equivalent of Move-to-Front, Transpose and Optimal Static Ordering in BST?