1 / 21

Advanced Tree Data Structures

Advanced Tree Data Structures. Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park. Overview. Binary trees Balance Rotation Multi-way trees Search Insert. Degenerate Worst case Search in O(n) time. Balanced Average case

Télécharger la présentation

Advanced Tree Data Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced Tree Data Structures Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park

  2. Overview • Binary trees • Balance • Rotation • Multi-way trees • Search • Insert

  3. Degenerate Worst case Search in O(n) time Balanced Average case Search in O( log(n) ) time Tree Balance Degenerate binary tree Balanced binary tree

  4. 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

  5. 4 44 3 2 17 78 1 2 1 88 32 50 1 Heights of children shown in red 1 48 62 AVL Trees • Properties • Binary search tree • Heights of children for node differ by at most 1 • Example

  6. AVL Trees • History • Discovered in 1962 by two Russian mathematicians, Adelson-Velskii & Landis • Algorithm • Find / insert / delete as a binary search tree • After each insertion / deletion • If height of children differ by more than 1 • Rotate children until subtrees are balanced • Repeat check for parent (until root reached)

  7. 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

  8. Red-black Trees • Example

  9. 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

  10. Tree Rotations • Changes shape of tree • Move nodes • Change edges • Types • Single rotation • Left • Right • Double rotation • Left-right • Right-left

  11. Tree Rotation Example • Single right rotation 2 3 3 1 2 1

  12. Tree Rotation Example • Single right rotation 3 5 2 5 3 6 4 6 1 4 2 1 Node 4 attached to new parent

  13. Example – Single Rotations 1 2 2 1 single left rotation 3 3 T T 0 3 T T T T T 1 0 1 2 3 T 2 3 2 single right rotation 2 1 3 1 T T 3 0 T T T T T 0 2 1 2 3 T 1

  14. T T 3 1 T T T T T 0 0 2 3 1 T 2 Example – Double Rotations 2 1 right-left double rotation 3 1 3 2 T T 0 2 T T T T T 3 0 1 3 2 T 1 3 2 left-right double rotation 1 1 3 2

  15. 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 12 5 8 15 33 2 8 17 44 1 3 7 9 19 21

  16. Types of Multi-way Search Trees 5 12 • 2-3 tree • Internal nodes have 2 or 3 children • Index search trie • Internal nodes have up to 26 children (for strings) • B-tree • T = minimum degree • Non-root internal nodes have T-1 to 2T-1 children • All leaves have same depth 2 8 17 c a o s T-1 … 2T-1 1 2 … 2T

  17. Multi-way Search Trees • Search algorithm • Compare key x to 1…k keys in node • If x = some key then return node • Else if (x < key j)search child j • Else if (x > all keys) search child k+1 • Example • Search(17) 25 5 12 30 40 1 2 8 17 27 36 44

  18. Multi-way Search Trees • Insert algorithm • Search key x to find node n • If ( n not full ) insert x in n • Else if ( n is full ) • Split n into two nodes • Move middle key from n to n’s parent • Insert x in n • Recursively split n’s parent(s) if necessary

  19. Multi-way Search Trees • Insert Example (for 2-3 tree) • Insert( 4 ) 5 12 5 12 2 8 17 2 4 8 17

  20. Multi-way Search Trees • Insert Example (for 2-3 tree) • Insert( 1 ) 5 5 12 2 12 1 2 4 8 17 1 4 8 17 Split node 2 5 12 Split parent 1 4 8 17

  21. 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

More Related