slides_algo-ds-trees-basics-typed
slides_algo-ds-trees-basics-typed
Binary Search
Tree Basics
Design and Analysis
of Algorithms I
Balanced Search Trees:
Supported Operations
Raison d’etre : like sorted array + fast (logarithmic) inserts + deletes !
OPERATIONS RUNNING TIME
SEARCH θ(log(n))
SELECT Also O(log(n)) Up from
supported O(1)
MIN/MAX by hash
O(log(n))
PRED/SUCC tables O(log(n))
RANK O(log(n))
OUTPUT IN SORTED ORDER O(n)
Also
INSERT supported O(log(n)) new
DELETE by heaps O(log(n))
Binary Search Tree Structure
-- exactly one node per key Root
-- most basic version :
each node has
-- left child pointer Leaves
-- right child pointer
-- parent pointer Toward the root
Tim Roughgarden
The Height of a BST Height = 2
Best case,
Worst case,
perfectly
a chain
balanced
Height = 4
Tim Roughgarden
Searching and Inserting
To Search for key k in tree T
-- start at the root
-- traverse left / right child pointers as needed
If k < key at If k > key at
current node current node
Tim Roughgarden
Deletion
TO DELETE A KEY K FROM A SEARCH TREE
- SEARCH for k