Radix Search Trie (RST) R-Way Trie (RT) De La Briandias Trie (DLB) Binary Search Tree (BST)

Radix Search Trie (RST) R-Way Trie (RT) De La Briandias Trie (DLB) Binary Search Tree (BST)

Search Radix search trie (RST) R-way trie (RT) De la Briandias trie (DLB) Binary search tree (BST) • Left branch is less than • Right branch is larger than Create BST (with 0, 1, 2, 3 in order) 0 0 < < 1 2 1 < < 3 2 < < 3 Can we do better? Radix search trie • Using binary representation of each value, and not the value itself (like in BST) • Create an RST with 0, 1, 2, 3 (in order) “binary” or 2-way tree Create RST each node links to 2 children Key Value Consider a lower case 000 0 alphabet string: each node (character) links to 0 (followed by) 26 children 001 1 (characters) 2 26-way tree 010 0 1 011 3 0 1 0 1 Binary representation Worst case is bound by the binary representation length, not by the number of elements as in the BST Can it be applied to strings? R-way trie (lecture example) Worst• she, case sells, bounds sea, shells, by the by, character the, sea, length shore of the string false false false false false true false false How can we indicate “she” is a complete word? true false true true Using a flag variable in false false false each node? false true true true Create R-way trie •shells, she Special node (starting of any string) s h e l l s s false h false Is this approach good? e truefalse l false l false s true The ugly truth she, sea s false ? ? 1 link for letter “e” 1 link for letter “h” a c e h 1 node = 26 links + 1 flag variable The same prefix? Impossible combinations? Can we do it better? De la Briandais (DLB) • Replace the fixed link array by a flexible linked list s a b c d e f g h i j k l m n o p q r s t u v w x y z head Linked-list next next next s e h Trade off • Save a lot of space, especially when the real case has sparse strings • Increase searching time. Why? • R-way trie: Directly go to a child in the array • DLB: linearly go the child in the linked list s e h Create a DLB • shells, she, sea, seat s h e l l s false s false seat false h e truefalse e true a false l true t false l true s Delete a word in DLB shells If the path does not belong to other sea false s false words, remove. Otherwise, leave it false h e alone. A true node true e falsetrue a stop Change to false, False, no children has a child false l true delete t stop False, no children false l delete Change to false truefalse no children: delete s Exercises (on paper) • RST: • Create a tree for: 2, 3, 4, 6 • Delete values: 4, 6 • DLB: • Create a tree for: baby, bad, bank, box, dad, dance • Delete words: bad, bank, dance Exercises RST (creation) 0 1 1 0 1 0 1 0 0 2 3 4 6 Exercises RST (deletion) 0 1 0 1 2 3 Exercise DLB (creation) b d a a o b d n x d n true true true c true y k true e true Exercise DLB (deletion) b d a a o d b x true true true y B-Tree • Self-balancing tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. • Each node can have more than two children • Max Degree defines max number of children each node can have B-Tree Insertion 1. Find the node to insert (starting from the root) 2. If there is room in the node, just insert in that node 3. Otherwise the node is full, evenly split it into two nodes so: 1. A single median is chosen from among the leaf's elements and the new element. 2. Values less than the median are put in the new left node and values greater than the median are put in the new right node, with the median acting as a separation value. 3. The separation value is inserted in the node's parent, which may cause it to be split, and so on. If the node has no parent (i.e., the node was the root), create a new root above this node (increasing the height of the tree). B-Tree Deletion 1. Find and delete the value i. If the value is not in a leaf node, you need to find a replacement… 2. Rebalance the tree i. Is there a sibling node with more than minimum keys? 1. If so rotate right/left accordingly ii. If not, need to merge with the left or right sibling B-Tree Example https://www.cs.usfca.edu/~galles/visualization/BTree.html Inserts: 77 33 11 99 88 44 22 66 15 50 60 63 64 100 Deletions: 99 77 50 33 44 64 66.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 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