Download trees - Simpson College

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Quadtree wikipedia , lookup

Lattice model (finance) wikipedia , lookup

Red–black tree wikipedia , lookup

Interval tree wikipedia , lookup

B-tree wikipedia , lookup

Binary tree wikipedia , lookup

Binary search tree wikipedia , lookup

Transcript
Mark Allen Weiss: Data Structures and Algorithm Analysis in Java
Chapter 4: Trees
Binary Search Trees
Lydia Sinapova, Simpson College
Binary Search Trees
 Definitions
 Operations and complexity
 Advantages and disadvantages
 AVL Trees
 Single
rotation
 Double rotation
 Splay Trees
 Multi-Way Search
2
Definitions
Each node –
a record with a key and a
value
a left link
a right link
All records with smaller keys –
left subtree
All records with larger keys –
right subtree
3
Example
4
Operations

Search - compare the values and proceed
either to the left or to the right

Insertion - unsuccessful search - insert the
new node at the bottom where the search has
stopped

Deletion - replace the value in the node with
the smallest value in the right subtree
or the largest value in the left subtree.

Retrieval in sorted order – inorder
traversal
5
Complexity
Logarithmic, depends on the shape of
the tree
In the worst case – O(N) comparisons
6
Advantages of BST
 Simple
 Efficient
 Dynamic
 One of the most fundamental algorithms in CS
 The method of choice in many applications
7
Disadvantages of BST
 The shape of the tree depends on the order of
insertions, and it can be degenerated.
 When inserting or searching for an element, the key
of each visited node
has to be compared with the key of the element to
be inserted/found.
Keys may be long and the run time may increase
much.
Animation
8
Improvements of BST
Keeping the tree balanced:
AVL trees (Adelson - Velskii and Landis)
Balance condition: left and right subtrees of each
node can differ by at most one level.
It can be proved that if this condition is observed
the depth of the tree is O(logN).
Reducing the time for key comparison:
Radix trees - comparing only the leading bits of the
keys (not discussed here)
9