CHAPTER 6 – Data Structures

Publisher Summary This chapter discusses data structures. Data structuring is the study of concrete implementations of frequently occurring abstract data types. An abstract data type is a set together with a collection of operations on the elements of the set. In the data type dictionary, the set is the power set of a universe U and the operations are insertion and deletion of elements and the test of membership. A typical application of dictionaries is symbol tables in compilers. In the data type priority queues, the set is the power set of an ordered universe U and the operations are insertion of elements and finding and deleting the minimal element of a set. Three types of complexity analysis are customary in the data structure area, namely, worst-case analysis, average-case analysis, and amortized analysis. In a worst-case analysis, worst-case time bounds for each single operation are derived. In an average-case analysis, a probability distribution on the operations of the abstract data type is postulated and the expected cost of the operations under this probability assumption is computed. In an amortized analysis, the worst-case cost of a sequence of operations is studied.

[1]  Krzysztof Dudzinski,et al.  On a Stable Minimum Storage Merging Algorithm , 1981, Inf. Process. Lett..

[2]  Kurt Mehlhorn,et al.  Sorting Jordan Sequences in Linear Time Using Level-Linked Search Trees , 1986, Inf. Control..

[3]  Nicola Santoro,et al.  Min-max heaps and generalized priority queues , 1986, CACM.

[4]  S. Sitharama Iyengar,et al.  On the dynamization of data structures , 1988, BIT Comput. Sci. Sect..

[5]  Dan E. Willard Log-Logarithmic Worst-Case Range Queries are Possible in Space Theta(N) , 1983, Inf. Process. Lett..

[6]  Alon Itai,et al.  A Sparse Table Implementation of Priority Queues , 1981, ICALP.

[7]  Caxton C. Foster,et al.  A generalization of AVL trees , 1973, Commun. ACM.

[8]  Lech Banachowski,et al.  A Complement to Tarjan's Result about the Lower Bound on the Complexity of the Set Union Problem , 1980, Inf. Process. Lett..

[9]  Greg N. Frederickson,et al.  Upper Bounds for Time-Space Trade-Offs in Sorting and Selection , 1987, J. Comput. Syst. Sci..

[10]  Kurt Mehlhorn,et al.  Searching Semisorted Tables , 1985, SIAM J. Comput..

[11]  J. Ian Munro,et al.  Implicit Data Structures for Fast Search and Update , 1980, J. Comput. Syst. Sci..

[12]  János Komlós,et al.  Storing a sparse table with O(1) worst case access time , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[13]  Greg N. Frederickson,et al.  Implicit Data Structures for the Dictionary Problem , 1983, JACM.

[14]  Manuel Blum,et al.  Time Bounds for Selection , 1973, J. Comput. Syst. Sci..

[15]  Robert E. Tarjan,et al.  A Linear-Time Algorithm for a Special Case of Disjoint Set Union , 1985, J. Comput. Syst. Sci..

[16]  J. Ian Munro,et al.  Selection and sorting with limited storage , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[17]  Robert G. Gallager,et al.  Variations on a theme by Huffman , 1978, IEEE Trans. Inf. Theory.

[18]  Allan Borodin,et al.  A Tradeoff Between Search and Update Time for the Implicit Dictionary Problem , 1986, Theor. Comput. Sci..

[19]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[20]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..

[21]  David P. Dobkin,et al.  Optimal Time Minimal Space Selection Algorithms , 1981, JACM.

[22]  Dan E. Willard,et al.  New Data Structures for Orthogonal Range Queries , 1985, SIAM J. Comput..

[23]  T. C. Hu,et al.  Optimal Computer Search Trees and Variable-Length Alphabetical Codes , 1971 .

[24]  Athanasios K. Tsakalidis,et al.  AVL-Trees for Localized Search , 1984, ICALP.

[25]  Allan Borodin,et al.  Efficient Searching Using Partial Ordering , 1981, Inf. Process. Lett..

[26]  Robert E. Tarjan,et al.  Fast Algorithms for Finding Nearest Common Ancestors , 1984, SIAM J. Comput..

[27]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[28]  Alon Itai,et al.  Interpolation search—a log logN search , 1978, CACM.

[29]  Robert E. Tarjan,et al.  Design and Analysis of a Data Structure for Representing Sorted Lists , 1978, SIAM J. Comput..

[30]  Frank K. Hwang,et al.  A Simple Algorithm for Merging Two Disjoint Linearly-Ordered Sets , 1972, SIAM J. Comput..

[31]  Edward M. Reingold,et al.  Binary Search Trees of Bounded Balance , 1973, SIAM J. Comput..

[32]  W. J. Hendricks The stationary distribution of an interesting Markov chain , 1972, Journal of Applied Probability.

[33]  Jon Louis Bentley,et al.  Amortized analyses of self-organizing sequential search heuristics , 1985, CACM.

[34]  Kurt Mehlhorn,et al.  On the Average Number of Rebalancing Operations in Weight-Balanced Trees , 1980, Theor. Comput. Sci..

[35]  W. W. Peterson,et al.  Addressing for Random-Access Storage , 1957, IBM J. Res. Dev..

[36]  Dan E. Willard Searching Unindexed and Nonuniformly Generated Files in log log N Time , 1985, SIAM J. Comput..

[37]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.

[38]  Ronald Fagin,et al.  Extendible hashing—a fast access method for dynamic files , 1979, ACM Trans. Database Syst..

[39]  Heikki Mannila,et al.  The Set Union Problem with Backtracking , 1986, ICALP.

[40]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[41]  Hans-Peter Kriegel,et al.  Multidimensional B-tree: An Efficient Dynamic File Structure for Exact Match Queries , 1980, GI Jahrestagung.

[42]  Adriano M. Garsia,et al.  A New Algorithm for Minimum Cost Binary Trees , 1977, SIAM J. Comput..

[43]  Kurt Mehlhorn,et al.  A Partial Analysis of Height-Balanced Trees Under Random Insertions and Deletions , 1982, SIAM J. Comput..

[44]  Robert E. Tarjan,et al.  Storing a sparse table , 1979, CACM.

[45]  Yehoshua Perl,et al.  Understanding the Complexity of Interpolation Search , 1977, Inf. Process. Lett..

[46]  Arnold Schönhage Storage Modification Machines , 1980, SIAM J. Comput..

[47]  Bernard Chazelle,et al.  How to Search in History , 1983, Inf. Control..

[48]  Béla Bollobás,et al.  Repeated Random Insertion into a Priority Queue , 1985, J. Algorithms.

[49]  R. Tarjan Amortized Computational Complexity , 1985 .

[50]  J. IAN MUNRO,et al.  An Implicit Data Structure Supporting Insertion, Deletion, and Search in O(log² n) Time , 1986, J. Comput. Syst. Sci..

[51]  Robert E. Tarjan,et al.  Self-Adjusting Heaps , 1986, SIAM J. Comput..

[52]  Kurt Mehlhorn Dynamic Binary Search , 1979, SIAM J. Comput..

[53]  Robert E. Tarjan,et al.  Sequential access in splay trees takes linear time , 1985, Comb..

[54]  J. Ian Munro,et al.  Searchability in merging and implicit data structures , 1983, BIT.

[55]  Ronald L. Rivest,et al.  On self-organizing sequential search heuristics , 1976, CACM.

[56]  Jan van Leeuwen,et al.  Worst-Case Optimal Insertion and Deletion Methods for Decomposable Searching Problems , 1981, Inf. Process. Lett..

[57]  Colin McDiarmid,et al.  Average-Case Lower Bounds for Searching , 1988, SIAM J. Comput..

[58]  David G. Kirkpatrick A Unified Lower Bound for Selection and Set Partitioning Problems , 1981, JACM.

[59]  Greg N. Frederickson,et al.  Implicit Data Structures for Weighted Elements , 1985, Inf. Control..

[60]  Mark H. Overmars,et al.  Dynamization of Order Decomposable Set Problems , 1981, J. Algorithms.

[61]  Kurt Mehlhorn,et al.  An Amortized Analysis of Insertions into AVL-Trees , 1986, SIAM J. Comput..

[62]  David P. Dobkin,et al.  Efficient uses of the past , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[63]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[64]  Gaston H. Gonnet,et al.  Exegesis of Self-Organizing Linear Search , 1981, SIAM J. Comput..

[65]  Leonidas J. Guibas,et al.  Optimal Point Location in a Monotone Subdivision , 1986, SIAM J. Comput..

[66]  David Maier,et al.  Hysterical B-trees , 1981, Inf. Process. Lett..

[67]  Peter van Emde Boas,et al.  Two Results on Tables , 1986, Inf. Process. Lett..

[68]  Greg N. Frederickson Self-Organizing Heuristics for Implicit Data Structures , 1984, SIAM J. Comput..

[69]  Witold Lipski,et al.  An O(n log n) Manhattan Path Algorithm , 1984, Inf. Process. Lett..

[70]  Donald E. Knuth,et al.  The Expected Linearity of a Simple Equivalence Algorithm , 1978, Theor. Comput. Sci..

[71]  Jan van Leeuwen,et al.  Worst-case Analysis of Set Union Algorithms , 1984, JACM.

[72]  Jeffrey H. Kingston A New Proof of the Garsia-Wachs Algorithm , 1988, J. Algorithms.

[73]  Kurt Mehlhorn,et al.  Optimal Dynamization of Decomposable Searching Problems , 1981, Inf. Process. Lett..

[74]  Thomas Porter,et al.  Random insertion into a priority queue structure , 1974, IEEE Transactions on Software Engineering.

[75]  Alfred V. Aho,et al.  On Finding Lowest Common Ancestors in Trees , 1976, SIAM J. Comput..

[76]  Vijay K. Vaishnavi Weighted Leaf AVL-Trees , 1987, SIAM J. Comput..

[77]  Robert E. Tarjan,et al.  Amortized Analysis of Algorithms for Set Union with Backtracking , 1988, SIAM J. Comput..

[78]  Arnold Schönhage,et al.  Finding the Median , 1976, J. Comput. Syst. Sci..

[79]  Donald E. Knuth,et al.  Deletions That Preserve Randomness , 1977, IEEE Transactions on Software Engineering.

[80]  Nicola Santoro,et al.  Interpolation-Binary Search , 1985, Inf. Process. Lett..

[81]  Kurt Mehlhorn,et al.  Dynamic Interpolation Search , 1985, ICALP.

[82]  Gaston H. Gonnet,et al.  Balancing binary trees by internal path reduction , 1983, CACM.

[83]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[84]  James F. Korsh,et al.  Greedy Binary Search Trees are Nearly Optimal , 1981, Inf. Process. Lett..

[85]  Mark H. Overmars,et al.  Batched Dynamic Solutions to Decomposable Searching Problems , 1985, J. Algorithms.

[86]  Jeffrey Scott Vitter,et al.  Design and analysis of dynamic Huffman codes , 1987, JACM.

[87]  Jon Louis Bentley,et al.  Decomposable Searching Problems , 1979, Inf. Process. Lett..

[88]  Robert E. Tarjan,et al.  Biased Search Trees , 1985, SIAM J. Comput..

[89]  Norbert Blum,et al.  On the Single-Operation Worst-Case Time Complexity of the Disjoint Set Union Problem , 1986, SIAM J. Comput..

[90]  Michael J. Fischer,et al.  An improved equivalence algorithm , 1964, CACM.

[91]  Donald E. Knuth,et al.  Dynamic Huffman Coding , 1985, J. Algorithms.

[92]  Kurt Mehlhorn,et al.  A Best Possible Bound for the Weighted Path Length of Binary Search Trees , 1977, SIAM J. Comput..

[93]  Robert E. Tarjan,et al.  Updating a Balanced Search Tree in O(1) Rotations , 1983, Inf. Process. Lett..

[94]  D. Huffman A Method for the Construction of Minimum-Redundancy Codes , 1952 .

[95]  Renzo Sprugnoli,et al.  Perfect hashing functions , 1977, Commun. ACM.

[96]  Ronald L. Rivest,et al.  Expected time bounds for selection , 1975, Commun. ACM.

[97]  Dan E. Willard New Trie Data Structures Which Support Very Fast Search Operations , 1984, J. Comput. Syst. Sci..

[98]  John McCabe,et al.  On Serial Files with Relocatable Records , 1965 .

[99]  Gaston H. Gonnet,et al.  Heaps on Heaps , 1982, SIAM J. Comput..

[100]  Robert E. Tarjan,et al.  Planar point location using persistent search trees , 1986, CACM.

[101]  Jon Doyle,et al.  Linear Expected Time of a Simple Union-Find Algorithm , 1976, Inf. Process. Lett..

[102]  Paul K. Stockmeyer,et al.  On the Optimality of Linear Merge , 1980, SIAM J. Comput..

[103]  Mark R. Brown,et al.  A Partial Analysis of Random Height-Balanced Trees , 1979, SIAM J. Comput..

[104]  Robert E. Tarjan,et al.  A Class of Algorithms which Require Nonlinear Time to Maintain Disjoint Sets , 1979, J. Comput. Syst. Sci..

[105]  George S. Lueker,et al.  Adding range restriction capability to dynamic data structures , 1985, JACM.

[106]  Eugene W. Myers,et al.  An Applicative Random-Access Stack , 1983, Inf. Process. Lett..

[107]  Jon Louis Bentley,et al.  Decomposable Searching Problems I: Static-to-Dynamic Transformation , 1980, J. Algorithms.

[108]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1987, JACM.

[109]  Markku Tamminen,et al.  Extendible Hashing with Overflow , 1982, Inf. Process. Lett..

[110]  Ernst-Erich Doberkat,et al.  An Average Case Analysis of Floyd's Algorithm to Construct Heaps , 1984, Inf. Control..

[111]  Andrew Chi-Chih Yao,et al.  On the Expected Performance of Path Compression Algorithms , 1985, SIAM J. Comput..

[112]  Clement T. Yu,et al.  A Generalized Counter Scheme , 1981, Theor. Comput. Sci..

[113]  Luc Devroye,et al.  A note on the height of binary search trees , 1986, JACM.

[114]  Robert E. Tarjan,et al.  Amortized efficiency of list update and paging rules , 1985, CACM.

[115]  Prakash V. Ramanan,et al.  New Algorithms for Selection , 1984, J. Algorithms.

[116]  Edward Fredkin,et al.  Trie memory , 1960, Commun. ACM.

[117]  Vangalur S. Alagar,et al.  Optimal Expected-Time Algorithms for Merging , 1986, J. Algorithms.

[118]  David Maier,et al.  An Efficient Method for Storing Ancestor Information in Trees , 1979, SIAM J. Comput..

[119]  Svante Carlsson,et al.  Splitmerge - A Fast Stable Merging Algorithm , 1986, Inf. Process. Lett..

[120]  Luis Trabb Pardo Stable Sorting and Merging with Optimal Space and Time Bounds , 1977, SIAM J. Comput..

[121]  J. Ian Munro,et al.  Self-organizing binary search trees , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[122]  Robert E. Tarjan,et al.  A Fast Merging Algorithm , 1979, JACM.

[123]  Andrew Chi-Chih Yao,et al.  On the Average-Case Complexity of Selecting the kth Best , 1982, SIAM J. Comput..

[124]  Mark R. Brown,et al.  Implementation and Analysis of Binomial Queue Algorithms , 1978, SIAM J. Comput..

[125]  Vijay K. Vaishnavi,et al.  Rectilinear Line Segment Intersection, Layered Segment Trees, and Dynamization , 1982, J. Algorithms.

[126]  James R. Bitner,et al.  Heuristics That Dynamically Organize Data Structures , 1979, SIAM J. Comput..

[127]  Robert HOOD,et al.  Real-Time Queue Operation in Pure LISP , 1980, Inf. Process. Lett..

[128]  Thomas W. Reps,et al.  Incremental Context-Dependent Analysis for Language-Based Editors , 1983, TOPL.

[129]  Jeffrey D. Ullman,et al.  Set Merging Algorithms , 1973, SIAM J. Comput..

[130]  Takao Asano,et al.  Dynamic Orthogonal Segment Intersection Search , 1987, J. Algorithms.