Cmsc 132: Object-Oriented Programming Ii

Cmsc 132: Object-Oriented Programming Ii

© Department of Computer Science UMD CMSC 132: OBJECT-ORIENTED PROGRAMMING II Advanced Tree Structures Department of Computer Science University of Maryland, College Park © Department of Computer Science UMD Overview • Binary trees • Balance • Rotation • Multi-way trees • Search • Insert • Indexed tries © Department of Computer Science UMD Tree Balance • Degenerate • Balanced • Worst case • Average case • Search in O(n) time • Search in O( log(n) ) time Degenerate Balanced binary tree binary tree © Department of Computer Science UMD 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 • For example, maintain invariant using rotations • Provides operations with O( log(n) ) worst case © Department of Computer Science UMD AVL Trees • Properties • Binary search tree • Heights of children for node differ by at most 1 • Example 4 44 2 3 17 78 1 2 1 32 50 88 1 1 Heights of 48 62 children shown in red © Department of Computer Science UMD Red-black Trees • Java collections • TreeMap and TreeSet use red-black trees • Properties • Binary search tree • Every node is red or black • Characteristics © Department of Computer Science UMD 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 1 3 7 9 19 21 44 © Department of Computer Science UMD Types of Multi-way Search Trees • 2-3 Tree 5 12 • Internal nodes have 2 or 3 children • Indexed Search Tree (trie) 2 8 17 • Internal nodes have up to 26 children (for strings) c • B-Tree • T = minimum degree a o s • Height of tree is O( logT(n) ) • All leaves have same depth T-1 … 2T-1 • Popular for large databases indices • 1 node = 1 disk block 1 2 … 2T © Department of Computer Science UMD Indexed Search Tree (Trie) • Special case of tree • Applicable when • Key C can be decomposed into a sequence of subkeys C1, C2, … Cn • Redundancy exists between subkeys • Approach • Store subkey at each node • Path through trie yields full key C1 C2 C3 C3 C4 © Department of Computer Science UMD Standard Trie Example • Example for strings { bear, bell, bid, bull, buy, sell, stock, stop } b s e i u e t a l d l y l o r l l l c p k © Department of Computer Science UMD Word Location Trie • Insert words s e e a b e a r ? s e l l s t o c k ! into trie 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 s e e a b u l l ? b u y s t o c k ! • Each leaf 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 stores locations b i d s t o c k ! b i d s t o c k ! of word in the 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 h e a r t h e b e l l ? s t o p ! text 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 b h s e i u e e t a l d l y a e l o 47, 58 36 0, 24 r l l r l c p 6 78 30 69 12 84 k 17, 40, 51, 62 © Department of Computer Science UMD Compressed Trie • Observation • Internal node v of T is redundant if v has one child and is not the root • Approach • A chain of redundant nodes can be compressed • Replace chain with single node • Include concatenation of labels from chain • Result • Internal nodes have at least 2 children • Some nodes have multiple characters © Department of Computer Science UMD Compressed Trie • Example b s e id u ell to ar ll ll y ck p b s e i u e t a l d l y l o r l l l c p k © Department of Computer Science UMD Tries and Web Search Engines • Search engine index • Collection of all searchable words • Stored in compressed trie • Each leaf of trie • Associated with a word • List of pages (URLs) containing that word • Called occurrence list • Trie is kept in memory (fast) • Occurrence lists kept in external memory • Ranked by relevance.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us