|
I Theoretical Advancements |
|
|
|
|
3 | (12) |
|
|
4 | (1) |
|
1.2 Design of Data Structure |
|
|
5 | (1) |
|
1.3 Analysis of Data Structure |
|
|
5 | (1) |
|
|
6 | (2) |
|
|
8 | (2) |
|
|
8 | (1) |
|
|
9 | (1) |
|
1.5.3 Cell-probe model of computation |
|
|
9 | (1) |
|
1.6 Bounds of Fundamental Data Structures |
|
|
10 | (1) |
|
|
10 | (1) |
|
1.8 Organization of Part I |
|
|
11 | (1) |
|
|
12 | (3) |
|
|
15 | (18) |
|
|
15 | (3) |
|
|
16 | (1) |
|
|
17 | (1) |
|
2.1.3 Collision resolution |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
19 | (3) |
|
2.3.1 Important properties |
|
|
21 | (1) |
|
2.3.2 Mathematical guarantees |
|
|
22 | (1) |
|
|
22 | (4) |
|
|
23 | (1) |
|
2.4.2 Bipartite graph of cuckoo hashing |
|
|
23 | (3) |
|
|
26 | (4) |
|
2.5.1 Construction of bloom filter |
|
|
26 | (2) |
|
2.5.2 Probability of false positives |
|
|
28 | (1) |
|
2.5.3 Optimal values of parameters |
|
|
29 | (1) |
|
2.6 Locality-Sensitive Hashing |
|
|
30 | (2) |
|
2.6.1 Use in nearest neighbor search problem |
|
|
31 | (1) |
|
|
32 | (1) |
|
3 O(log(n)) Ordered Search (Trees and Lists) |
|
|
33 | (22) |
|
3.1 Balanced Binary Search Trees (BSTs) |
|
|
33 | (3) |
|
3.1.1 Height bound of balanced BST |
|
|
35 | (1) |
|
|
36 | (3) |
|
3.2.1 Static randomized BSTs |
|
|
37 | (1) |
|
3.2.2 Dynamic randomized BSTs |
|
|
37 | (1) |
|
3.2.3 Analysis of randomized BSTs |
|
|
38 | (1) |
|
|
39 | (6) |
|
|
40 | (1) |
|
3.3.2 Splaying algorithms |
|
|
40 | (4) |
|
|
44 | (1) |
|
|
45 | (1) |
|
3.4.1 Creation of tango tree |
|
|
45 | (1) |
|
|
45 | (1) |
|
|
46 | (4) |
|
|
47 | (1) |
|
|
48 | (1) |
|
3.5.3 Probabilistic analysis of skiplist |
|
|
49 | (1) |
|
3.6 Static and Dynamic Optimality |
|
|
50 | (2) |
|
3.6.1 Search optimality in BST |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
52 | (3) |
|
4 Findset, Find Min, and Find Word |
|
|
55 | (28) |
|
|
55 | (5) |
|
4.1.1 Operations on disjoint-set data structure |
|
|
55 | (1) |
|
4.1.2 Representations of disjoint sets |
|
|
56 | (1) |
|
4.1.3 Link-list representations of disjoint sets |
|
|
56 | (2) |
|
4.1.4 Forest representations of disjoint sets |
|
|
58 | (2) |
|
|
60 | (5) |
|
4.2.1 Creation and updates of binomial heap |
|
|
61 | (1) |
|
4.2.2 Operations of Binomial Heap |
|
|
62 | (2) |
|
|
64 | (1) |
|
|
65 | (4) |
|
4.3.1 Properties of a Fibonacci heap |
|
|
65 | (1) |
|
4.3.2 Inserting, merging, cutting, and marking |
|
|
65 | (1) |
|
4.3.3 Decreasing keys and delete-min operation |
|
|
66 | (1) |
|
4.3.4 Algorithm for Fibonacci heaps |
|
|
67 | (1) |
|
4.3.5 Amortized analysis for Fibonacci heaps |
|
|
68 | (1) |
|
|
69 | (1) |
|
|
69 | (6) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (3) |
|
4.5.1 Inverted index creation |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (5) |
|
|
|
5 Evolving Paradigms of Data Structures |
|
|
83 | (6) |
|
|
83 | (1) |
|
|
84 | (1) |
|
5.3 Communication Complexities |
|
|
85 | (1) |
|
|
86 | (1) |
|
|
87 | (2) |
|
6 Spatial Data Structures |
|
|
89 | (18) |
|
|
89 | (3) |
|
|
90 | (1) |
|
|
91 | (1) |
|
|
92 | (4) |
|
6.2.1 Creation of KD tree |
|
|
92 | (3) |
|
6.2.2 Range search in KD tree |
|
|
95 | (1) |
|
6.2.3 Nearest neighbor search in KD tree |
|
|
96 | (1) |
|
|
96 | (5) |
|
6.3.1 Inserting data into a quadtree |
|
|
97 | (1) |
|
6.3.2 Properties of quadtree |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
99 | (2) |
|
|
101 | (3) |
|
6.4.1 Indexing structure of R tree |
|
|
101 | (1) |
|
|
102 | (1) |
|
6.4.3 Dynamic update of R tree |
|
|
103 | (1) |
|
|
104 | (3) |
|
7 Temporal Data Structures |
|
|
107 | (10) |
|
|
107 | (6) |
|
7.1.1 Partial persistence |
|
|
108 | (3) |
|
|
111 | (1) |
|
7.1.3 Confluent persistence |
|
|
112 | (1) |
|
7.1.4 Functional persistence |
|
|
112 | (1) |
|
|
113 | (2) |
|
7.2.1 Decomposable search problem |
|
|
114 | (1) |
|
|
115 | (2) |
|
8 External Memory Data Structures |
|
|
117 | (18) |
|
8.1 Input/Output (I/O) Model |
|
|
118 | (1) |
|
8.2 Cache Oblivious Algorithms |
|
|
119 | (1) |
|
|
119 | (1) |
|
8.2.2 Cache oblivious model |
|
|
119 | (1) |
|
|
120 | (8) |
|
|
121 | (1) |
|
|
121 | (2) |
|
|
123 | (2) |
|
8.3.4 Amortized analysis of B trees |
|
|
125 | (2) |
|
|
127 | (1) |
|
|
128 | (2) |
|
|
129 | (1) |
|
|
129 | (1) |
|
|
130 | (2) |
|
|
132 | (3) |
|
9 Distributed Data Structures (DDSs) |
|
|
135 | (14) |
|
9.1 Descriptions of Structures |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
136 | (4) |
|
9.2.1 Structure of distributed hashing |
|
|
137 | (3) |
|
|
140 | (3) |
|
9.3.1 Construction of distributed BST |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (5) |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (1) |
|
9.4.5 Correctness and concurrency |
|
|
147 | (1) |
|
|
148 | (1) |
|
10 Synopsis Data Structures |
|
|
149 | (20) |
|
|
149 | (2) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (5) |
|
10.2.1 Sampling technique |
|
|
151 | (2) |
|
10.2.2 Reservoir sampling |
|
|
153 | (2) |
|
10.2.3 Sampling with updates |
|
|
155 | (1) |
|
10.2.4 Sliding window sampling |
|
|
156 | (1) |
|
|
156 | (4) |
|
10.3.1 Count-min sketches |
|
|
157 | (3) |
|
|
160 | (2) |
|
10.4.1 Fingerprinting scheme of Rabin |
|
|
160 | (2) |
|
|
162 | (3) |
|
10.5.1 Wavelet decomposition |
|
|
162 | (3) |
|
|
165 | (4) |
|
|
|
11 Introduction to Applications |
|
|
169 | (2) |
|
11.1 Various Domain Applications |
|
|
169 | (1) |
|
|
170 | (1) |
|
12 Applications to Cryptography |
|
|
171 | (8) |
|
|
171 | (2) |
|
|
172 | (1) |
|
12.2 Secure Socket Layers (SSLs) |
|
|
173 | (1) |
|
12.2.1 Data structure of open SSL |
|
|
174 | (1) |
|
|
174 | (1) |
|
|
175 | (2) |
|
|
177 | (2) |
|
13 Application to IR and WWW |
|
|
179 | (6) |
|
|
179 | (1) |
|
13.2 Posting List Intersection |
|
|
180 | (1) |
|
13.3 Text Retrieval from Inverted Index |
|
|
181 | (1) |
|
13.4 Auto Complete Using Tries |
|
|
182 | (1) |
|
|
183 | (2) |
|
14 Applications to Data Science |
|
|
185 | (6) |
|
14.1 Heavy Hitters and Count-Min Structures |
|
|
185 | (1) |
|
14.2 Approximate Nearest Neighbor Searches |
|
|
186 | (1) |
|
14.2.1 Approximate nearest neighbor |
|
|
186 | (1) |
|
14.2.2 Locality-sensitive hashing (LSH) |
|
|
186 | (1) |
|
14.3 Low Rank Approximation by Sampling |
|
|
187 | (2) |
|
14.3.1 Nystrom approximation |
|
|
187 | (1) |
|
|
188 | (1) |
|
14.4 Near-Duplicate Detection by Min Hashing |
|
|
189 | (1) |
|
|
189 | (2) |
|
15 Application to Network and IOT |
|
|
191 | (6) |
|
15.1 Click-Stream Processing Using Bloom Filters |
|
|
191 | (1) |
|
|
192 | (1) |
|
15.2 Fast IP-Address Lookup Using Tries |
|
|
192 | (2) |
|
15.3 Integrity Verification: Cloud and IOT Data |
|
|
194 | (1) |
|
|
195 | (2) |
|
16 Applications to Systems |
|
|
197 | (6) |
|
|
197 | (1) |
|
16.2 Completely Fair Schedulers in Kernels |
|
|
198 | (2) |
|
|
199 | (1) |
|
|
200 | (1) |
|
16.4 Data Structures for Building File Systems |
|
|
201 | (1) |
|
|
201 | (2) |
|
17 Applications to Databases |
|
|
203 | (6) |
|
|
203 | (1) |
|
17.1.1 Searching sorted files |
|
|
203 | (1) |
|
17.1.2 Index for first search |
|
|
203 | (1) |
|
17.1.3 Insertion deletion in database |
|
|
204 | (1) |
|
17.2 B and B+ Trees for Database Creation and Block Search |
|
|
204 | (1) |
|
17.2.1 Applications of B trees in databases and file systems |
|
|
205 | (1) |
|
|
205 | (1) |
|
|
206 | (1) |
|
|
207 | (2) |
|
18 Applications to Images and Graphics |
|
|
209 | (8) |
|
18.1 R Trees for Map Searches |
|
|
209 | (1) |
|
18.1.1 R trees for mapping |
|
|
209 | (1) |
|
|
210 | (1) |
|
|
210 | (1) |
|
|
210 | (1) |
|
18.2 Spatial Proximity in GIS |
|
|
210 | (2) |
|
|
210 | (1) |
|
18.2.2 Data access in GIS |
|
|
211 | (1) |
|
18.2.3 Computational requirements |
|
|
211 | (1) |
|
18.2.4 Solution using k-d tree |
|
|
211 | (1) |
|
|
212 | (2) |
|
|
212 | (1) |
|
18.3.2 Camera-ray intersections |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
213 | (1) |
|
18.3.6 Recursive ray tracing |
|
|
213 | (1) |
|
|
214 | (1) |
|
18.3.8 Bounding volume hierarchies |
|
|
214 | (1) |
|
18.4 Data Structures Used in Ray Shooting |
|
|
214 | (1) |
|
|
214 | (1) |
|
|
214 | (1) |
|
|
215 | (1) |
|
|
215 | (1) |
|
18.4.5 Hierarchical grids |
|
|
215 | (1) |
|
|
215 | (2) |
Bibliography |
|
217 | (20) |
Index |
|
237 | |