Unformatted text preview:

Advanced Tree Data Structures Fawzi Emad Chau Wen Tseng Department of Computer Science University of Maryland College Park Overview Binary trees Traversal order Balance Rotation Multi way trees Search Insert Tree Traversal Goal Visit every node in binary tree Approaches Depth first Preorder parent before children Inorder left child parent right child Postorder children before parent Breadth first closer nodes first Tree Traversal Methods Pre order 1 Visit node first 2 Recursively visit left subtree 3 Recursively visit right subtree In order 1 Recursively visit left subtree 2 Visit node second 3 Recursively right subtree Post order 1 Recursively visit left subtree 2 Recursively visit right subtree 3 Visit node last Tree Traversal Methods Breadth first BFS Node n Queue Q new Queue Q enqueue n insert node into Q while Q empty n Q dequeue remove next node if n isEmpty visit n visit node Q enqueue n Left insert left subtree in Q Q enqueue n Right insert right subtree in Q Tree Traversal Examples Pre order prefix 23 84 In order infix 2 3 8 4 Post order postfix 23 84 Breadth first 2384 2 3 8 4 Expression tree Tree Traversal Examples Pre order 44 17 32 78 50 48 62 88 Sorted order In order 17 32 44 48 50 62 78 88 Post order 32 17 48 62 50 88 78 44 Breadth first 44 17 78 32 50 88 48 62 44 78 17 88 50 32 48 62 Binary search tree Tree Balance Degenerate Worst case Search in O n time Degenerate binary tree Balanced Average case Search in O log n time Balanced binary tree Tree Balance Question Can we keep tree mostly balanced Self balancing binary search trees AVL trees Red black trees Approach Select invariant that keeps tree balanced Fix tree after each insertion deletion Maintain invariant using rotations Provides operations with O log n worst case AVL Trees Properties Binary search tree Heights of children for node differ by at most 1 Example 44 2 4 3 17 78 1 2 32 Heights of children shown in red 88 50 1 48 62 1 1 AVL Trees History Discovered in 1962 by two Russian mathematicians Adelson Velskii Landis Algorithm 1 Find insert delete as a binary search tree 2 After each insertion deletion a If height of children differ by more than 1 b Rotate children until subtrees are balanced c Repeat check for parent until root reached Red black Trees Properties Binary search tree Every node is red or black The root is black Every leaf is black All children of red nodes are black For each leaf same of black nodes on path to root Characteristics Properties ensures no leaf is twice as far from root as another leaf Red black Trees Example Red black Trees History Discovered in 1972 by Rudolf Bayer Algorithm Insert delete may require complicated bookkeeping rotations Java collections TreeMap TreeSet use red black trees Tree Rotations Changes shape of tree Move nodes Change edges Types Single rotation Left Right Double rotation Left right Right left Tree Rotation Example Single right rotation 2 3 2 1 1 3 Tree Rotation Example Single right rotation 3 5 3 2 1 2 6 4 1 5 4 6 Node 4 attached to new parent Example Single Rotations 1 single left rotation 2 3 T0 T1 3 T1 T2 1 T0 T3 T1 3 T2 T3 2 single right rotation 2 1 T0 T2 T3 2 1 T0 3 T1 T2 T3 Example Double Rotations 1 right left double rotation 3 2 T0 T3 T2 T1 3 1 T1 T3 T2 1 T0 3 T0 T2 T1 T3 2 left right double rotation 1 2 T0 2 3 T1 T2 T3 Multi way Search Trees Properties Generalization of binary search tree Node contains 1 k keys in sorted order Node contains 2 k 1 children Keys in jth child jth key keys in j 1 th child Examples 5 2 12 8 5 8 15 33 17 1 3 7 9 19 21 44 Types of Multi way Search Trees 5 2 3 tree Internal nodes have 2 or 3 children 2 8 Index search trie 17 c Internal nodes have up to 26 children for strings a B tree T minimum degree Non root internal nodes have T 1 to 2T 1 children All leaves have same depth 12 o s T 1 2T 1 1 2 2T Multi way Search Trees Search algorithm 1 Compare key x to 1 k keys in node 2 If x some key then return node 3 Else if x key j search child j 4 Else if x all keys search child k 1 Example 25 Search 17 5 1 2 12 8 30 40 17 27 36 44 Multi way Search Trees Insert algorithm 1 Search key x to find node n 2 If n not full insert x in n 3 Else if n is full a Split n into two nodes b Move middle key from n to n s parent c Insert x in n d Recursively split n s parent s if necessary Multi way Search Trees Insert Example for 2 3 tree Insert 4 5 2 12 8 5 17 2 4 12 8 17 Multi way Search Trees Insert Example for 2 3 tree 5 Insert 1 5 124 12 8 2 17 Split node 1 4 8 4 8 Split parent 2 5 12 1 12 17 17 B Trees Characteristics Height of tree is O logT n Reduces number of nodes accessed Wasted space for non full nodes Popular for large databases 1 node 1 disk block Reduces number of disk blocks read


View Full Document

UMD CMSC 132 - Advanced Tree Data Structures

Documents in this Course
Notes

Notes

8 pages

Recursion

Recursion

12 pages

Sorting

Sorting

31 pages

HTML

HTML

7 pages

Trees

Trees

19 pages

HTML

HTML

18 pages

Trees

Trees

19 pages

Honors

Honors

19 pages

Lecture 1

Lecture 1

11 pages

Quiz #3

Quiz #3

2 pages

Hashing

Hashing

21 pages

Load more
Loading Unlocking...
Login

Join to view Advanced Tree Data Structures and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Advanced Tree Data Structures and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?