1 / 25

Digital Search Trees & Binary Tries

Digital Search Trees & Binary Tries. Analog of radix sort to searching. Keys are binary bit strings. Fixed length – 0110, 0010, 1010, 1011 . Variable length – 01, 00, 101, 1011 . Application – IP routing, packet classification, firewalls. IPv4 – 32 bit IP address; |key| <= 32.

jackelinet
Download Presentation

Digital Search Trees & Binary Tries

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. Digital Search Trees & Binary Tries • Analog of radix sort to searching. • Keys are binary bit strings. • Fixed length –0110, 0010, 1010, 1011. • Variable length –01, 00, 101, 1011. • Application – IP routing, packet classification, firewalls. • IPv4 – 32 bit IP address; |key| <= 32. • IPv6 – 128 bit IP address; |key| <= 128.

  2. Digital Search Tree • Assume fixed number of bits. • Not empty => • Root contains one dictionary pair (any pair). • All remaining pairs whose key begins with a 0 are in the left subtree. • All remaining pairs whose key begins with a 1 are in the right subtree. • Left and right subtrees are digital search trees on remaining bits.

  3. 0110 0110 0010 Example • Start with an empty digital search tree and insert a pair whose key is 0110. • Now, insert a pair whose key is 0010.

  4. 0110 0010 1001 0110 0010 Example • Now, insert a pair whose key is 1001.

  5. 1001 0110 0010 1001 0110 0010 1011 Example • Now, insert a pair whose key is 1011.

  6. 1001 0110 0010 1011 1001 0110 0010 1011 0000 Example • Now, insert a pair whose key is 0000.

  7. 1001 0110 0010 1011 0000 Search/Insert/Delete • Complexity of each operation isO(#bits in a key). • #key comparisons = O(height). • Expensive when keys are very long.

  8. Binary Trie • Information Retrieval. • At most one key comparison per operation. • Fixed length keys. • Branch nodes. • Left and right child pointers. • No data field(s). • Element nodes. • No child pointers. • Data field to hold dictionary pair.

  9. 0 1 0 0 1 0 1 0 0 1 1000 1100 0011 0001 1001 Example At most one key comparison for a search.

  10. Variable Key Length • Left and right child fields. • Left and right pair fields. • Left pair is pair whose key terminates at root of left subtree or the single pair that might otherwise be in the left subtree. • Right pair is pair whose key terminates at root of right subtree or the single pair that might otherwise be in the right subtree. • Field is null otherwise.

  11. Example 0 null 1 0 00 01100 10 11111 0 0 0000 001 1000 101 1 00100 001100 At most one key comparison for a search.

  12. 1 0 1 0 0 1 0 1 0 0 1 1000 1100 0011 0001 0111 1001 Fixed Length Insert Insert 0111. Zerocompares.

  13. 1 0 1 0 0 1 0 1 0 0 1 1000 1100 0111 0011 0001 1001 Fixed Length Insert Insert1101.

  14. 1 0 1 0 0 1 0 0 0 1 0 1001 0011 0001 1100 0111 1000 Fixed Length Insert 0 1 Insert 1101.

  15. 1 0 1 0 0 1 0 0 0 1 0 1 1000 0011 0001 0111 1100 1101 1001 Fixed Length Insert 0 1 Insert 1101. One compare.

  16. 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1000 0011 0111 0001 1100 1101 1001 Fixed Length Delete Delete 0111.

  17. 0 1 0 0 1 0 1 0 0 0 1 0 1 1000 0011 0001 1100 1101 1001 Fixed Length Delete Delete 0111. One compare.

  18. 0 1 0 0 1 0 1 0 0 0 1 0 1 1000 0011 0001 1100 1101 1001 Fixed Length Delete Delete 1100.

  19. 0 1 1101 1001 0001 0011 1000 Fixed Length Delete 0 1 0 0 1 0 1 0 0 1 Delete 1100.

  20. 0 1101 1001 1000 0001 0011 Fixed Length Delete 0 1 0 0 1 0 1 0 0 1 Delete 1100.

  21. 1101 1001 1000 0011 0001 Fixed Length Delete 0 1 0 0 1 0 1 0 0 1 Delete 1100.

  22. 1001 1000 0011 0001 1101 Fixed Length Delete 0 1 0 0 1 0 1 0 0 1 Delete 1100. One compare.

  23. Fixed Length Join(S,m,B) • Convert 3-way join to 2-way join • Insert m into B to get B’. • S empty => B’ is answer; done. • S is element node => insert S element into B’; done; • B’ is element node => insert B’ element into S; done; • If you get to this step, the roots of S and B’ are branch nodes.

  24. S B’ J(S,B’) a b c c J(a,b) Fixed Length Join(S,m,B) • S has empty right subtree. + = J(X,Y)ajoin X and Y, all keys in X < all in Y.

  25. S B’ J(S,B’) a b c a J(b,c) Fixed Length Join(S,m,B) • S has nonempty right subtree. • Left subtree of B’ must be empty, because all keys in B’ > all keys in S. + = Complexity = O(height).

More Related