Presentation is loading. Please wait.

Presentation is loading. Please wait.

Space-Efficient Static Trees and Graphs Guy Jacobson IEEE Symposium on Foundations of Computer Science, 1989 Speaker:

Similar presentations


Presentation on theme: "Space-Efficient Static Trees and Graphs Guy Jacobson IEEE Symposium on Foundations of Computer Science, 1989 Speaker:"— Presentation transcript:

1 Space-Efficient Static Trees and Graphs Guy Jacobson IEEE Symposium on Foundations of Computer Science, 1989 Speaker:

2 A pointer needs lg n bits to address n different locations. Using pointers to represent the linking relation of a graph will therefore occupy ( n lg n ) bits nil6 7 8

3 Outline To store a binary tree in asymptotically optimal space –Represent a tree in O ( n ) bits –Efficient tree-traversal in space-efficient trees To store planar graphs in asymptotically optimal space

4 1.Mark all the nodes of the tree with 1. 2.Add external nodes to the tree, and mark them all with 0. 3.Read off the makes of nodes of the tree in level-order. Binary Trees in 2 n +1 bits

5 1.Mark all the nodes of the tree with 1. 2.Add external nodes to the tree, and mark them all with 0. 3.Read off the makes of nodes of the tree in level-order. Binary Trees in 2 n +1 bits

6 How to compute the linking relations in a space-efficient tree?

7 Rank and Select Define two operations rank(m) and select(m) as follows: rank(m): Counts the number of 1 s from position 1 up to position m in a binary string select(m): Finds the m -th 1 s in a binary string Example: rank(10) = 7 select(7) =

8 Algorithm to Compute Linking Relations left-child(m) 2 rank(m) right-child(m) 2 rank(m) 1 parent(m) select( m 2 )

9 How to compute rank(m) and select(m) efficiently? (e.g. constant time)

10 The rank directory: Conceptually break the bit-string into blocks of length lg 2 n. Keep a table containing the number of 1 s up to the last position in each block. This takes n / lg n bits. Break each block into sub-blocks of length ½lg n. Keep a table containing the number of 1 s within the block up to the last position in each sub-block. This takes n lglg 2 n / lg n bits. Keep a pre-computed table giving the number of 1 s up to every possible position in every possible distinct sub-block. Compute Rank( m ) and Select( m )

11 123n/lg 2 n lg 2 n lg n 0 ½lg n lglg 2 n n / lg n bits 2n lglg 2 n / lg n bits n bits

12 123n/lg 2 n lg 2 n lg n 0 ½lg n lglg 2 n n / lg n bits 2n lglg 2 n / lg n bits n bits Precomputed Table 2 ½lg n ½lg n lg½lg n bits

13 Planar Graphs in O ( n ) Space Represent a special case of planar graphs called one- page graphs in O(n) bits k-page graphs can be represented in O(kn) bits Any planar graph can be embedded in a four-page graph. Yannakakis, M. "Four pages are necessary and sufficient for planar graphs." Proceedings of the 18th ACM Symposium on Theory of Computing, pages , 1986.

14 One-page graph One-page Graph: All edges are lying to one side and can not cross.

15 One-page graph in O ( n ) Space One-page Graph: All edges are lying to one side and can not cross. | ((( | )( | ( | )) | )( | ))

16 How to compute the linking relations in the parenthesis string?

17 Finding the close parenthesis which match the open one First, break the string of parentheses into blocks of length lg n.

18 Definitions Far parenthesis: An open parenthesis p is called a far parenthesis if and only if p's matching parenthesis lies outside its own block. Pioneer: A far parenthesis is a pioneer if and only if its matching parenthesis lies in a different block that of the previous far parenthesis. The number of pioneers is at most 2lgn. Dotted lines denote the matches of far parentheses Red ones denote the matches of pioneers

19 Use a Directory Structure of Size O ( n ) bits for Matching Parentheses

20

21 Matching Parentheses For a parenthesis p, its matching parenthesis q can be found out as follows: Case1: p and q are in the same block Using precomputed table lgn

22 Matching Parentheses Case2: p and q are not in the same block Find the pioneer of p and use it to locate the block containing q Compute the position of q via nesting depths

23 O(n) bits O(n) bits + number of pioneers lg n bits o(n) bits

24 Conclusion A space-efficient data structure achieve almost optimal space while supporting the required operations almost as efficient as using pointers to represent it. References Dinesh P. Mehta and Sartaj Sahni. Handbook of Data Structures and Applications. Chapman & Hall/CRC, 2005.


Download ppt "Space-Efficient Static Trees and Graphs Guy Jacobson IEEE Symposium on Foundations of Computer Science, 1989 Speaker:"

Similar presentations


Ads by Google