Presentation is loading. Please wait.

Presentation is loading. Please wait.

Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010, 1011.  Variable.

Similar presentations


Presentation on theme: "Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010, 1011.  Variable."— 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.  IPv4 – 32 bit IP address.  IPv6 – 128 bit IP address.

2 IPv4 Addresses 32-bit address divided into four 8-bit segments.  a1.a2.a3.a4  Each 8-bit segment is written as a decimal number in the range 0 – 255.  123.1.44.161  Class A Internet address.  a1 is net address.  Most significant bit of a1 is 0.  a2.a3.a4 gives host address within network.  <= 128 Class A nets.  Each Class A net may have up to 2 24 ~ 17 million hosts.

3 IPv4 Addresses  Class B Internet address.  a1.a2 is net address.  Two most significant bits are 10.  a3.a4 gives host address within network.  Up to 2 14 = 16,384 Class B nets.  Each Class B net may have up to 2 16 = 65,536 hosts.  IP addresses in a small company/department that has up to 256 hosts could have the format a1.a2.a3.*.  IP addresses of hosts in the same network/subnetwork have the same prefix.

4 IPv4 Routers Routing table entry … (prefix, nextMachine)  Prefix is a binary string whose length is <= 32 bits.  Packets whose destination address matches prefix may be routed to nextMachine.  (011*, M1) => all packets whose destination address begins with 011 may be routed next to machine M1.  (0111011*, M2)  Packet routing requires us to find the longest prefix (in the routing table) that matches the packet destination.

5 IP Router Table Collection of (prefix, nextMachine) pairs. Operations.  Add a pair.  Remove a pair.  Find pair with longest matching prefix.

6 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 subtrees on remaining bits.

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

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

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

10 Example Now, insert a pair whose key is 0000. 1001 0110 0010 1011 1001 0110 0010 10110000

11 Search/Insert/Delete Complexity of each operation is O(#bits in a key). #key comparisons = O(height). Expensive when keys are very long. 1001 0110 0010 10110000

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

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

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

15 Example At most one key comparison for a search. 0 1 0null0001100 0000001 1011111 00100001100 1000101 00 1

16 Fixed Length Insert Insert 0111. 0001 0011 1100 1000 1001 0 0 0 0 0 0 1 1 1 1 0111 1 Zero compares.

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

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

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

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

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

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

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

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

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

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

27 Fixed Length Join(S,m,B) Insert m into B to get B’. S empty => B’ is answer; done. If you get to this step, the root of both S and B’ is a branch node. S is element node => insert S element into B’; done; B’ is element node => insert B’ element into S; done;

28 Fixed Length Join(S,m,B) S has empty right subtree. a S bc B’ c J(S,B’) J(a,b) J(X,Y)  join X and Y, all keys in X < all in Y.

29 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. c B’ a J(S,B’) J(b,c) a S b Complexity = O(height).


Download ppt "Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010, 1011.  Variable."

Similar presentations


Ads by Google