Index

Note: Page numbers followed by “fn” indicate footnotes.

A

AA-trees, 157

AABB-trees, 256, 893

AABB, see Axis-aligned bounding box

ABIT, see Alternative BIT structure

Abstract data types (ADT), 77, 79, 117, 197, 595, 653, 655

(a, b)-trees, 166167

Accept nodes, 477

Access functions, 279, 282

Access operations, 182183

Accessors, 681682

Access structure, 260

Accounting method, 14

maintenance contract, 1516

McWidget company, 1718

subset generation, 19

ACID semantics, see Atomicity, Consistency, Isolation, Durability semantics

Ackermann’s function, 538, 1014

functional inverse of, 95

inverse, 322

Active pair, 225

Active vertex, 190

Actual complexity, 14

Acyclic digraphs, 58

Acyclic graph, 53

Adaptive merging algorithm, 176177

Adaptive multidimensional histogram (AMH), 367

Adaptive-phi, 986

Adaptive properties of pairing heaps, 94

Adaptive sorting algorithm, 176177

Additional operations, 69, 343, 389, 395, 540, 599, 668

Additive weights, 1022

Address computation methods, 253

Adjacency

lists, 50, 51

lists representation, 277

matrix, 50, 51

Adjacent polygons, 872

ADT, see Abstract data types

Advanced geometric data structures, 656

Advanced operations, 350

nearest neighbor queries, 350351

spatial joins, 351353

Agglomerative clustering, 1007, 1008

Aggregate method, 14

maintenance contract, 15

McWidget company, 17

subset generation, 19

Aggregate query, 367

Aggregation

B+-tree, 246

operators, 245

query in B+-tree, 245247

Air-traffic controls, 370

AlgoComs, 884

Algorithmic Solutions Software GmbH, 654

Algorithm(s), 656, 679, 683684, 688, 948949

animation, 697

designers, 7

Dijkstra’s, 689

euler tour tree traversal, 688

graph traversals, 688689

iterator-based tree traversals, 688

Prim-Jarník, 689

sequence sorting, 688

topological numbering, 689

visualization, 697

All-pairs approximate shortest paths (APASP), 611

All-pairs shortest path, 6465

All-pairs shortest paths, 591

updates in O(n2.5Clog n) time, 592

updates in O(n2 log3n) time, 592

AllocatePage function, 234

Almost-linear-time algorithm, 951

α-balanced region, 406

canonical region, 413

Alphabetic tree problem, 224

Alpha channel, 859

Alternative BIT structure (ABIT), 775

Alternative node structures, 447449

ALU, see Arithmetic and logic unit

Amalgamated node, 950

Ambivalent data structures, 574, 582; see also Cache-oblivious data structures; Randomized graph data-structure

Amethyst system, 704

AMH, see Adaptive multidimensional histogram

Amortization, 644648

Amortized analysis, 7879

Amortized complexity, 14

maintenance contract, 1516

McWidget company, 1618

subset generation, 1820

Amortized cost, 1419, 79, 94, 98, 121, 160, 161, 164, 185, 427, 532534

analysis of Insert or DeleteMin operation, 552, 556557, 559560

of meld operation, 8283

of single splaying, 188

Amortized time, 69, 90, 181182

Amortized update cost to worst-case, 633634

Analogous methods for 3D polytopes, 383

Analysis of algorithms, 3

amortized complexity, 1420

asymptotic complexity, 911

counting cache misses, 79

operation counts, 45

practical complexities, 2021

recurrence equations, 1213

step counts, 57

Analytical models of R-trees, 353356

Analytics workloads, 987

Ancestor, 714715

node, 36

Anchor, 923

Angular resolution, 723

Annulus wedge, 719

Anomaly detection, 999

Anti-monotone property of itemset support, 1003

Apache Zookeeper projects, 986

APASP, see All-pairs approximate shortest paths

Append operation, 295, 296

Applicability criteria, 891

“Apply” algorithm, 506

Apportion, 715

Approximate distance oracle, 611, 616

computing Balli(u) efficiently, 616618

computing pi(u), ∀u ∈ V, 616

Approximate geometric query structures

approximate queries, 406409

BAR trees, 412416

BBD trees, 410411

general terminology, 406

maximum-spread k-d trees, 416

quasi-BAR bounds, 409410

Approximate nearest neighbor searching, 10371038

Approximate pattern matching, 473474

Approximate queries, 406409

Approximate range query, 407

Approximates optimal Huffman code, 230

Approximate Voronoi diagram (AVD), 1038; see also Voronoi diagrams

Approximation algorithm, 389

Approximation error factor, 1038

Apriori algorithm, 1003, 1004, 1005

AQT, see Area-based Quadtree

Arbitrarily oriented objects, 1045

Arbitrarily shaped queries, 345

Arbitrary element deletion from Max HBLT, 74

Arbitrary merging order, 175176

Arbitrary range minimum query, 472

Arbitrary space decomposition, 262

Arbitrary weights, 6364

ArcGIS, 883

Archetypical data structure, 595

Architectural design, 817

Arc of dynamic trees, 193

Area-based Quadtree (AQT), 790791, 792

Area Searches operation, 820

Arithmetic and logic unit (ALU), 7

Arithmetic model, 530, 538

Arithmetic operation, 7

Arrangement(s), 288, 385, 1014

of curves in plane, 1014

decomposition, 10151016

duality, 10161017

of lines, 288

maximum complexity of single cells and envelopes in arrangements, 1015

substructures and complexity, 10141015

Array(s), 23, 468, 607

access structure, 253

of arrays representation, 26

doubling, 25

dynamic, 607

handling, 518

heterogeneous arrays, 2526

implementation of queue, 33

index, 24

multidimensional, 2627

multiple lists in single array, 25

operations on, 2425

resizable, 607

sorted, 25

sparse matrices, 27

ArrayHeap, 687

ArrayQuickSort, 688

ArraySequence, 686

Assignment pedigree, 519

Association analysis, 1002

basic K-means algorithm, 1007

enumerating subsets of three items from transaction, 1005

FP-tree structure, 10051007

hashing transaction at root node of hash tree, 1004

hash tree structure, 10041005

subset operation on left most subtree of root of candidate hash tree, 1006

Association rule, 1003

mining, 998999

Associative containers, 667, 669

maps and multimaps, 670672

sets and multisets, 669670, 671

“Assume, verify, and conquer” strategy (AVC strategy), 392

Asymmetric hashing, 125

Asymmetric matrix, 959

Asymmetric multifrontal algorithm, elimination structures for, 962

Asymptotic complexity

big oh notation (O), 911

little oh notation (o), 11

omega and theta notations, 11

Asymptotic notation, 10

Atomicity, Consistency, Isolation, Durability semantics (ACID semantics), 983

Attribute, 278

edge, 278, 280, 281

face, 278, 280, 281

geometric, 378

geometric, 871

primary, 252

vertex, 278, 280, 281

Augmented ephemeral data structure, 517

Autocorrelation factor, 919

Automatic Graph Drawing, 707

Automatic translation techniques, 819

Automorphism, 937

geometric, 728, 729

group, 937

Auxiliary 3D R-tree, 369

AVC strategy, see “Assume, verify, and conquer” strategy

AVD, see Approximate Voronoi diagram

Average path length, 810

AVL-trees, 155156, 159, 164, 166, 179, 180, 389, 390, 708

Axes-parallel objects, 10441045

Axial case, 729

Axial symmetry, 728, 730732

Axioms of probability, 199

Axis-aligned bounding box (AABB), 256, 893, 896

B

Back-end structure, 774

Back edges, 54

Backoff technique, 743

Backward analysis, 207

Backward finger search, 174

Backward pointers, 456

Bad nodes, 910

Balanced aspect ratio tree (BAR tree), 405, 412416, 426, 1038; see also Binary space partitioning trees (BSP trees); R-trees*

construction algorithm, 414

Balanced binary search trees (BBST), 78, 151152, 183, 233, 316, 389, 644; see also Finger search trees

application to multi-dimensional search trees, 161162

balancing, 153155

binary trees as dictionaries, 152153

classic balancing schemes, 155158

general balanced trees, 160161

implementation of binary search trees, 153

implicit representation of balance information, 159160

low height schemes, 162164

rebalancing tree to perfect balance, 158

relaxed balance, 164167

schemes with no balance information, 158

Balanced binary tree, 574

based on multi-way trees, 157158

Balanced box decomposition tree (BBD tree), 405, 410411, 412, 426, 1038; see also Binary space partitioning trees (BSP trees); R-trees*

Balanced BST implementation, 393395

Balance definitions, 153, 154

in AVL-trees, 155

rebalancing tree to perfect, 158

Balanced parenthesis representation, 600

Balanced priority search tree, 1046

Balanced search tree, 554

Balanced structures, 390, 391, 393

Balanced tree, 331, 599

Balance information, implicit representation of, 159160

Balance of node, 156

Balancer, 750

Balancing, 153

balance definitions, 154

complexity results, 155

rebalancing algorithms, 154155

Balli(u) efficiently computiation, 616618

BANG file, 258

Barriers, 748

Bars”, horizontal line segments, 732

BAR tree, see Balanced aspect ratio tree

Bar visibility algorithm, 734735

Bar visibility representations

and layered drawings, 735736

for orthogonal drawings, 736737

Barycenter algorithm, 726

Base repertoire of actions, 529

Base repertoire plus member, 529

BasicintervalPointer, 774

Basic Library (libL), 654

Basic search algorithms, 783

Basket weaving, 338

Batched dynamic operations, 427

Batched filtering, 422

Batched geometric problems, EM algorithms for, 421424

Batched incremental construction, 422

Batched problems, 420, 421

Batched techniques, 421

Batcher’s merging technique, 635

Bayes’ rule, 200

BB[α]-trees, see Weight-balanced trees

BBD tree, see Balanced box decomposition tree

BBST, see Balanced binary search trees

BDDs, see Binary decision diagrams

Beam-tracing based algorithm, 334

Beam tracing, 336

Benes network, 604605

Bernoulli distribution, 202, 918, 919

Bernoulli Trial, see Coin flip

Beyond planar graphs, 738

Beyond planarity, 738

Bezier curves, 864867

BFS, see Breadth-first search

Bibliometrics, 805

Biclique covers, 958959

Bidirectional iterators, 674

Big data stores, data structures for, 983

concurrency, 992993

data models, 984

partitioning, 984985

persistence, 987992

replication and consistency, 985987

Big data technologies, 872

Big oh notation (O), 911

BigTable, 989

Binarizations of multi-way search tree schemes, 154

Binary B-tree, 157

Binary decision diagrams (BDDs), 495

BDD-based techniques, 495

concepts, 495498

construction from Boolean expressions, 499502

data structure, 498499

package, 506

related research activities, 506507

shared BDD, 498

truth table and, 496

for typical Boolean functions, 498

variable ordering for, 502503

Winter of BDDs”, 507

zero-suppressed BDD, 504506

Binary dispatching problem, 514

Binary encoding, 800

Binary image, 904

Binary interval tree (BIT), 774

Binary large objects (blobs), 977

Binary logic operation, 500501

Binary mergers, 548549

Binary merge sort, 175

Binary merge trees, 548

Binary search recurrence of equation, 13

Binarysearchtree-on-Trie (BoT), 793

Binary search trees (BSTs), 42, 152, 209, 223, 253, 329, 331332, 421, 447, 642644, 774775

algorithm, 470

delete, 43

implementation, 153

implementations, 391393

insert, 4243

miscellaneous, 4344

search, 42

Binary space partitioning trees (BSP trees), 261, 262, 329330, 340, 384, 406, 416, 867868, 1032; see also R-trees*

boundary representations vs. BSP trees, 340

converting B-Reps to trees, 339340

elementary operation, 331

good BSP trees, 337338

as hierarchy of regions, 334

of inter-object spatial relations, 330

of intra-object spatial relations, 330

merging BSP trees, 336

multi-dimensional search structure, 331332

multiresolution representation, 335

plane power, 330

tree merging, 335337

visibility orderings, 332334

BinaryTree, 686

Binary tree on binary tree (BOB), 777

Binary trees, 3537, 39, 152, 470, 599, 708

data structure, 427

as dictionaries, 152153

hashing, 127

level layout for, 709710

properties, 3839

Binary tree traversals, 39

inorder traversal, 40

level order traversal, 41

postorder traversal, 4041

preorder traversal, 40

Binary trie, 448, 449, 531, 533, 603

compressed, 456, 457

Binary union tree, 538

Binomial coefficients, 202

Binomial distribution, 135, 137, 140, 202, 206

negative, 202204

Binomial heaps, 69, 8589; see also Skew heaps

Binomial trees, 8586, 87

Bintree, 254, 261

Biological sequence data, 917

Biological taxonomies, 332, 1007

Bipartite cores, 805

Bipartitions, 540541

Bisector list implementation in HVT, 829

Bisector List Quad Trees (BLQT), 264, 884

Bisector List Quad Trees (BLQT), 826

Bisectors, 826

Bit-wise boolean operations, 595

BIT, see Binary interval tree

Bitbound algorithm, 940, 943

Bit collision”, 146

Bitmap-intersection, 796797

Bitmap graphics, see Raster graphics

Bitmap index, 970

Bits, 604

Bit string, 317

Bit table, 975

Bitvector, 596597

Black box”, 179

blobs, see Binary large objects

BlobWorld system, 915

Block(s), 234, 833834, 974, 976, 980

decomposition, 261

size, 988

Blocked bloom filter, 136

bloom-1 filter, 136137

bloom-1 vs. bloom with optimal k, 139140

bloom-1 vs. bloom with small k, 138139

bloom-g, 140141

bloom-g in dynamic environment, 144

bloom-g vs. bloom with optimal k, 142144

bloom-g vs. bloom with small k, 141142

discussion, 144

impact of word size, 137138

Blocking phenomenon, 743

Blocking techniques, 743744

Bloom-1 filter, 136140

Bloom-gfilter, 140141

vs. bloom with optimal k, 142144

vs. bloom with small k, 141142

in dynamic environment, 144

Bloom filter, 131, 132, 990

black box view, 132

blocked bloom filter, 136144

CBF, 135136

for dynamic set, 146147

false-positive ratio and optimal k, 133134

performance metrics, 133

Bloom filter variants, 136, 144

bloom filter for dynamic set, 146147

improving read/write efficiency, 145146

improving space efficiency, 145

reducing false-positive ratio, 145

reducing hash complexity, 146

BloomFlash, 146

Bloom with optimal k

bloom-1 vs., 139140

bloom-g vs., 142144

Bloom with small k

bloom-1 vs., 138139

bloom-g vs., 141142

BLQT, see Bisector List Quad Trees

BOB, see Binary tree on binary tree

Boolean” objects, 868

Boolean AND, 800

Boolean expressions, BDDs construction from, 499

binary logic operation, 500501

complement edges, 501502

primitive operations for BDD manipulation, 499

Boolean function, 495496

systematic methods for, 495

Boolean NOT, 800

Boolean operations, 868, 873

Boole’s Inequality, see Sub additivity

Bootstrapping

paradigm, 428, 431, 432

for three-sided orthogonal 2-D range search, 432433

Boruvka’s MST algorithm, 62

BoT, see Binarysearchtree-on-Trie

Bottom-up

algorithms, 393

construction, 316

methods, 430, 893

splay trees, 195

traversal, 470

Bottom-vertex triangulations, 10151016

Bottom trees, 549

Boundary-based representation, 259

Boundary-labeling problem, 873

Boundary model, 266

Boundary of face, 891

Boundary representation, 339, 340

vs. BSP trees, 340

Boundary vertices, 574

Bounded-sliceline grid (BSG), 833, 844, 847848

Bounded aspect ratio, 434

Bounded Quad Trees (BQT), 828829

Bounded slicing grid, 835

Bounding

box, 437

functions, 350

size of Bd,su under edge-deletions, 621

sphere, 383

Bounding volume hierarchies (BVHs), 340, 383, 892, 896

Bounding volumes (BVs), 334, 892

choice of, 893

Bounds from computational geometry, 786

Bowtie2 alignment tool, 927

BQT, see Bounded Quad Trees

Branch-and-bound algorithm, 351

Branch-node pointers, 456

Breadth-first search (BFS), 54, 56, 578579

simple applications of, 56

topological sorting, 5758

tree, 618, 622

Breadth-first traversal strategy, 880

Brent’s method, 124, 127

BRep, see winged-edge data structure

Brightness value, 904

Broad phase, 898

Brute force algorithm, 345

BSG, see Bounded-sliceline grid

B-spline curves, 867

BSP trees, see Binary space partitioning trees

BSTs, see Binary search trees

B+-tree, 233, 239, 245, 911, 987, 988

aggregation query in, 245247

bulk-loading, 245

copy-up and push-up, 240

deletion, 242244

insertion, 241242

query, 240241

B-tree based technique, 360

B-trees, 157, 166, 233, 234235, 389, 425426, 878, 969, 970; see also Splay trees

B+-tree, 239244

deletion, 237239

disk-based environment, 233234

efficiency analysis, 245

family, 874

insertion, 236237

query, 235236

structure, 421

variants, 360

B*-trees, 233, 425, 844

Bubble sort, 25

Bucketing, 163

methods, 252, 256259

Bucket(s), 252, 254, 562, 980, 988

directory, 980

Buddy trees, 429

Buffer management, data structures for, 974

direct page addressing, 974, 975

indirect page addressing, 975

shadow paging concept, 976

Buffer Manager, 968

Buffer(s), 356, 523, 557, 968

pool, 234

trees, 427428

zone, 407

Bugs, 640

Bulk dynamic operations, 430

Bulk loading, 349, 884

B+-tree, 245

“Bump” mapping, 862

Burrows–Wheeler transform, 927, 928

Bursty access pattern, 775fn

BVHs, see Bounding volume hierarchies

BVs, see Bounding volumes

BWA-MEM alignment tool, 927

C

C++, data structures in

components of STL, 676677

containers, 667673

iterators, 674676

C++ programming language, 23, 679

Cache-coherent multiprocessor, 743

Cached assertions, 378

Cache hierarchy, utilizing, 864

Cache-oblivious algorithm, 545546

Cache-oblivious data structures; see also Randomized graph data-structure

cache-oblivious model, 545546

dynamic B-trees, 550553

fundamental primitives, 546

k-merger, 546, 548550

priority queues, 554560

2d orthogonal range searching, 560563

van Emde Boaz layout, 546548

Cache-oblivious kd-tree, 560

construction, 561

query, 560561

structure, 560

updates, 561

Cache-oblivious model, 545546

Cache-oblivious range tree, 561

four-sided queries, 563

three-sided queries, 562563

Cache misses effect on run time, 78

Caching mechanisms, 360

CAD, see Computer aided design

CAD/CAM drawings, 858859

CAGD, see Computer-aided geometric design

Calinescu’s algorithm, 541

CAM, see Computer Aided Manufacturing

Candidate itemsets, 1004

Canonical bounding cuts, 412

Canonical covering, 294, 295

Canonical cuts, 412

Canonical geometric structures, 386

Canonical label, 936

Canonical labeling methods, 937

Morgan’s algorithm, 937

Nauty, 937938

signature-based canonization, 938

Canonical order, 605

algorithm using, 727728

Canonical region, 412

Canonical representations, 936937

Canonical spatial join algorithm, 352

Canonical triangulation, 399, 400

Capacitance, 818

Capacity of cut, 190

CAP theorem, see Consistency, availability, and partition tolerance theorem

Cardinality degree, 571

Cardinal trees, 599, 601602

CartoDB, 883

Cartographic generalization, 873

Cartography, see Map visualization

CAS, see Chemical abstracts service; Compare-and-swap

CAS-based lock-free linked list, 753754

Cascade hashing, 127

Cascading cuts, 90, 91

Cassandra, 986, 989

Catalan numbers, 39

Catenate, 522

Causteljau algorithm, 866

CBAC, see Context-based access control

CBF, see Counting Bloom filter

CBIR systems, see Content-Based Image Retrieval systems

CBL, see Corner block list

Cell(s), 312, 911, 1014

complex, 1028

deletion, 317

insertion, 317

orderings, 314315

probe model, 530

queries, 316317

Central projection, 897

Centroid shrink, 410

Certificate, 378

CGAL, see Computational geometry algorithms library

Chain codes, 265

Chaining, hashing with, 122

Chains, 2829, 30

Characteristic functions, 504

Character large objects!character (clobs), 977

Chemical abstracts service (CAS), 935

Chemical fingerprints, 939

bitbound algorithm, 940

combining hashing and trees, 943

fingerprint compression, 940

hashing approaches for improved searches, 940941

inverted indices, 942

LINGO, 942

multibit and union tree, 943

Tanimoto similarity, 939940

triangle inequality and improvements, 941

trie-based approaches for storing fingerprints, 943

XOR filter, 941942

Chemical graph, 936

Chemical space, 935

Cheminformatics, 935

bitbound algorithm, 940

chemical fingerprints and similarity search, 939

combining hashing and trees, 943

exact searches, 936938

fingerprint compression, 940

hashing approaches for improved searches, 940941

inverted indices, 942

LINGO, 942

multibit and union tree, 943

tanimoto similarity, 939940

triangle inequality and improvements, 941

trie-based approaches for storing fingerprints, 943

XOR filter, 941942

Chernoff bounds, 203

Child cache, 432

Child deque, 523

childNode, 448

Children node, 36, 92

Chip multithreading (CMT), 741

Cholesky factorization, 946

Chord, 954

Chordal graphs, 954955

Circular deque, 607

Circular lists, 2930

C language, 640

Classical binary merge sort algorithm, 176

Classical O(n log n) time sorting algorithm, 175

Classical union-find problem and variants, 539540

Classic balancing schemes, 155

AVL-trees, 155156

balanced binary trees based on multi-way trees, 157158

weight-balanced trees, 156157

Classic search trees, 164

Classification, 1000

k-nearest neighbor classification algorithm, 1001

nearest-neighbor classifiers, 1001

1-, 2-and 3-nearest neighbors of instance, 1001

proximity graphs for enhancing nearest neighbor classifiers, 10011002

system, 541

techniques, 998

Classifier, 783

Clique, 291

Clique covers, 945, 957

covering column-intersection graph and biclique covers, 958959

problem of degree updates, 958

quotient graphs, 957958

Clique tree, 945, 954

algorithm, 955

chordal graphs and, 954955

compact clique trees, 956

design of efficient algorithms with, 955956

clobs, see Character large objects!character

Closely-related variables, 502

Cluster(s), 571, 574, 582

analysis, 999

changes, 384

path, 574

Clustered graph drawing, 737

Clustered index, 980, 981

Clustering, 384, 582, 999, 1007

hierarchical and partitional clustering, 10071008

mobile nodes, 384

multi-dimensional access methods, 10081010

nearest neighbor search, 10081010

technique, 574, 582

CLWS problem, see Concave Least Weight Subsequence problem

c-maximal point, 1050

CMT, see Chip multithreading

CNFs, see Conjunctive normal forms

Co-expressed genes, 918

Coarsest equitable partitions, 938

Coboundary of vertex, 891

Code fragments for sequential and lock-based fetch-and-inc operations, 742

Code Generator, 969

Coding information, 159

Cofactors, 496

Coin-collector, 215, 216

Coin collector problem, 221

algorithm for, 221222

reduction to, 220221

Coin flip, 202

Col-etree, see Column elimination tree

Collection of prefix trees (CPT), 774

Collision detection, 377, 383384, 889, 893, 894895

convex polytopes, 890892

general polygonal models, 892896

large environments, 898901

PD computation, 896898

Collisions, 532, 801, 867868

array, 749

resolution strategy, 122

Color, 859

Colored intersection searching, see Generalized intersection searching

Colored problems, 1044

Color monitors, 859

Column-count of vertex, 951

Column-intersection graph, 958959

Column-oriented symbolic factorization algorithms, 951

Column elimination tree (Col-etree), 945, 959960

asymmetric multifrontal algorithm, elimination structures for, 962

elimination dags, 960962

Column family stores, 984

Column indices, 950

Column intersection graph, 958, 961

Column major representation, 26

Column nonzero counts prediction, 951952

Column orderings, 958

Column subgraph, 956

Combinatorial and geometric computing, 653, 654

Combinatorial complexity, 1014, 1028

Combining funnel, 749

Combining hashing and trees, 943

Combining nodes, 389

Combining techniques, 635

Combining tree approach, 743, 749

Command completion system, 451

Common-sense approach, 224

COMMON statements, 538

Communication systems, 359

Compact clique trees, 956

Compact DAWG, 478, 479, 486

using compact DAWG to finding locations of

string in text, 487488

edge labels representation, 488

variations and applications, 488489

Compaction, 819, 820

Compactness, 380

Compact quadtrees, 907, 908909

Comparators, 683

Compare-and-swap (CAS), 744

Comparison-based model, 627, 634

Complementary range search problem, 104105

Complemented edges, 501

Complement edges, 501502

Complete binary tree, 599

Complete directed bipartite graph, 277

Complete subset graph, 536

Complex data, 704, 1000

Complexity, 679, 779

measurement, 155, 545, 745

“Compound” objects, 868

Compressed binary trie, 456, 457

Compressed data structure, 435

Compressed path method, 522

Compressed quadtrees

bottom-up construction, 316

construction of, 315

divide-and-conquer construction algorithm, 315316

and octrees, 313314

Compressed tries, 452

with digit numbers, 452454

with edge information, 454456

with skip fields, 454

space required by compressed trie, 456

Compressed tries with digit numbers

inserting into, 452453

removing element from, 453454

searching, 452

Compressed tries with edge information, 454

inserting into, 455

removing element from, 456

searching, 455

“Compresses” multiple R-trees, 368

Compression process, 756

Computational biology, 917

FM-index, 926931

unusual words, 917923

whole genomes comparison, 923926

Computational geometry, 377, 1013

arrangements, 10141017

bounds from, 786

convex hulls, 10171020

motion in, 377

triangulations, 10221025

Voronoi diagrams, 10201022

Computational geometry algorithms library (CGAL), 679, 872, 884

Computational platforms, 948

Computational tasks, 622

Computation model, 530, 627

Computer aided design (CAD), 343, 858

Computer-aided geometric design (CAGD), 377

Computer Aided Manufacturing (CAM), 858

Computer graphics, 857

bitmaps, 859860

CAD/CAM drawings, 858859

CSG modeling, 868869

data structures, 862867

fonts, 859

hardware and pipeline, 857858

hidden surface removal, 867

meshes, 858

proximity and collision, 867868

texture mapping, 861862

Concave Least Weight Subsequence problem (CLWS problem), 230

Concave matrix multiplication techniques, 230

Concurrency, 992993

Concurrent data structures

barriers, 748

blocking techniques, 743744

complexity measures, 745

correctness, 745746

designing, 741

hash tables, 754

linked lists, 753754

locks, 747

nonblocking techniques, 744745

performance, 742743

pools, 752753

priority queues, 756757

search trees, 754756

shared counters and fetch-and-φ structures, 749750

stacks and queues, 751752

tools of trade, 746

transactional synchronization

mechanisms, 748

verification techniques, 746

Concurrent queue implementation, 748749

Condensing, 1002

Conditional probability, 200201

Confidence bounds, 199

Conflict-free ranges, 780

Confluently persistent data structures, 511, 518522

Conjugated systems, 936

Conjunctive normal forms (CNFs), 501, 506

Connected components, 57

labeling, 322

Connected graph, 53

Connectivity, 5153, 384, 587

updates in O(log2n) time, 587588

Consistency, availability, and partition tolerance theorem (CAP theorem), 983

Consistent hashing, 984985

key assignment, 985

node addition, 986

Consolidation process, 91

Constant, 478

Constant size, 401

alphabet, 463

Constant time, 381, 892

Constrained MST, 62

Constraint graphs, 833, 838

generation, 838839

relationship between constraint graph based representation, 845

triangulation, 839

Tutte’s duality, 839841

Constraint plane, 891

Construction

in RAM model, 561

of topology trees, 572

Constructive Solid Geometry (CSG), 259, 868869

Constructors, 641

Contact determination, see Collision detection

Container adapters, 667, 672

priority_queue, 672673

stack and queue, 672

Containers, 667, 681682

associative containers, 669672

classes, 667

container adapters, 672673

sequence containers, 668669

Content-Based Image Retrieval systems (CBIR systems), 914, 915

computational framework, 915

general structure, 914915

Context-based access control (CBAC), 131

Continuous differential equations, 806

Continuously moving items, 436437

Continuously moving objects, indexing structures for, 370

REXP-tree, 373

STAR-tree, 373

TPR-tree, 371372

TPR*-tree, 373

Continuous query, 367

Contract cases, 286

Conventional DBMS, 874

Converting B-reps to trees, 339340

Convex bounding volumes, 336

Convex drawing, 726; see also Symmetric drawing; Visibility drawing

algorithm using canonical ordering, 727728

Barycenter algorithm, 726

divide and conquer algorithm, 726727

Convex hulls, 378379, 385, 402, 894, 1017

complexity, 10171018

construction, 10181019

convex hull-trees, 893

dynamic, 10191020

maximum complexity, 1018

Overmars-van Leeuwen structure, 1019

revisited, 380381

Convex optimization, 892

Convex-polygon clipping, 337

Convex polytopes, 382, 890, 896897

linear programming, 890

Minkowski sums and convex optimization, 892

Voronoi-based marching algorithm, 890892

Coordinate values, 253

Copy pointer, 517

Copy-up node, 240

Corner block list (CBL), 833, 844, 848849, 851

Corner cut canonical set, 416

Corner(s), 1024

stitching, 833, 841

Corner stitching data structure, 819

point finding operation, 820821

storage requirements of, 822

Tile Creation, 821822

Corner stitching extensions, 822

curved tiles, 823

expanded rectangles, 822823

L-shaped tiles, 823826

trapezoidal tiles, 823

Correctness, 225, 654, 745746

Correspondence property, 101, 108, 109

Corruption, 9495

Counter overflow, 135136

Counter size, 135136

Counting Bloom filter (CBF), 135

counter size and counter overflow, 135136

Counting cache misses, 7

effect of cache misses on run time, 78

matrix multiplication, 89

simple computer model, 7

Counting networks, 750

COUNT operator, 245246

CPT, see Collection of prefix trees

Crawlers fingerprint, 802

Crawling, 813814

Credits, 1718

invariant, 556

Crossing minimization methods, 737

Cross-producting, 789790

Cross tree, 429

CRUST algorithm, 661

Cryptographic hash function, 986

CSE method, 360

CSG, see Constructive Solid Geometry

Cuckoo hashing, 126

Current edge, 192

currentNode, 448

“Curse of dimensionality”, 359, 999, 1037

Curved tiles, 823

Curve reconstruction, 661662

Cuttings

applications, 401

convex hulls and Voronoi diagrams, 402

cutting construction, 397

geometric sampling, 398399

Hopcroft’s problem, 401

optimal cuttings, 399401

point location, 401

range searching, 402

Cyber communities, 805

Cycle detection, 57

Cycle or circuit, 5253

Cyclic case, 729

Cyclic ordering of characters, 489

D

DAG, see Directed acyclic graph

DAM, see Disk access model

Dangling edges, 278

Data

compression method, 471, 800

definition statements, 967

element, 389

field, 447

flow diagrams, 707

models, 882, 984

ownership and distribution, 1000

quality, 1000

set, 349

structuring techniques, 583

warehouse, 874

Database management system (DBMS), 233, 245, 874, 881, 967

functionality, 967968

simplified architecture, 968

Databases, data structures for, 967

for buffer management, 974976

for disk space management, 976981

functionality of database management system, 967968

for query processing, 968974

Data-driven spatial data structures, 428

Dataflow analysis, 589

Data mining, 874, 997

application, 507, 10021007

challenges, 9991000

classification, 10001002

clustering, 10071010

and role of data structures and algorithms, 1000

tasks and techniques, 998999

Web pages indexed by Google© search engine, 998

Data structure(s), 23, 151, 179, 186, 197, 263, 331, 363, 419, 420, 426, 489, 551, 579, 584, 628, 639, 655, 698, 767, 787, 862, 891

advanced geometric data structures, 656

and algorithms, 1000

BDDs, 498499

BOB, 777778

for buffer management, 974976

for disk space management, 976981

geometry Kernels, 656

graph data structures, 655

hierarchical distance maintaining, 619621

hierarchical tries, 787, 788

linear interpolation and Bezier curves, 864867

linear search, 787

numbers and matrices, 655

Patricia, 456

for query processing, 968974

rendering value, 698

set-pruning tries, 787788

tiled, multidimensional array, 864

vertex, normal, and face lists, 863

vertices, edges, and faces, 862

views, 699

Winged Edge approach, 863864

Data structures library in Java (JDSL), 680, 681

algorithms, 683684, 688689

architecture of, 684

Class FlightDijkstra, 694695

Class IntegerDijkstraPathfinder, 693694

Class IntegerDijkstraTemplate, 690693

comparators, 683

containers and accessors, 681682

decorations, 683

design concepts in, 681

iterators, 682683

key-based containers, 687688

minimum-time flight itineraries, 689690

packages, 684

positional containers, 684687

sample application, 689

Data structure visualization, 697

data structure views, 699

DDD, 702704

existing research and systems, 700

GELO, 702

incense, 701

interacting with system, 699700

purpose and environment, 698699

systems, 698, 704

value of data structure rendering, 698

VIPS, 701702

Data types, 655

advanced data types, 655

basic, 655

geometry Kernels, 656

numbers and matrices, 655

DAWG, see Directed acyclic word graph

db.collection.indexStats() method, 988

d-box, 389

DBMS, see Database management system

DCAS, see Double-compare-and-swap

DDD system, 700, 702704

d-dimensional array, 252

d-dimensional packet classification problem, 765

d-dimensional points, 343

Deadlocks, 744

DeallocatePage function, 234

Deaps, 98, 108

inserting element, 109

removing min element, 109111

Decision nodes, see Nonterminal nodes

Decision trees, 332

Decomposability property, 291

Decomposition, 10151016

process, 309, 310

rules, 259, 260

Decorations, 683

Decremental APASP, randomized data-structure for, 618

bounding size of Bd,su under edge-deletions, 621622

hierarchical distance maintaining data-structure, 619621

improved decremental algorithm for APASP up to distance d, 622624

main idea, 618619

notations, 619

Decremental graph problem, 581

defaultAncestor, 714

Default prefix, 766

Deferred splitting, policy for, 347

Deformable objects, 383

Defragmentation, 979

Degree, 49

distribution, 806

node, 36

Degree updates, problem of, 958

Delaunay diagrams, 385

Delaunay flipping, 663664

Delaunay graph, 1034

Delaunay triangulation (DT), 277, 289, 1020, 10211023, 10331034

under point motion, 382

Delayed pivoting, 962

Delete algorithm, 237238, 242244

Delete-max operation, 77

Delete-min operation, 77, 80, 304, 554

Delete operation, 14, 85, 182, 197, 554, 987

BSTs, 43

Deletion(s), 152153, 160, 161

algorithm, 317

of arbitrary element from Max HBLT, 74

max-heap, 4546

of max element from Max HBLT, 72

in O(log2n) time, 589

of object, 362

in RBST, 211212

Delta-encoding technique, 800

Dendrogram, 1007

Dense case, 120

Dense index, 980

Dense interconnection, 805

“Denseness” of interconnection, 805

Density based search tree, 550552

Density of intervals set, 291

Density thresholds, 551

DEPQs, see Double-ended priority queues

Depth first expression (DF-expression), 362

Depth-first search (DFS), 54, 683, 688, 948, 961

adjacency lists and depth-first traversal, 55

algorithm for depth-first search on undirected graph, 55

on digraph, 57

simple applications of, 56

topological sorting, 5758

traversal, 472

Depth-first strategy, 880

Depth first traversal, 55, 926

Depth-first unary degree sequence representation, 600

Depth of node, 152

Deques, see Double ended queues

Descent pointers, 204, 207

Descriptive tasks, 998

Designating algorithms, 402

Design Rule Checking (DRC), 263, 818, 829

Destination address, 765

Deterministic algorithms, 198, 630

exponential search trees, 632633

fusion trees, 630632

Deterministic finite automaton, 477

Deterministic sum of n random variables, 203

Dewey decimal notation, 35

DF-expression, see Depth first expression

DFS, see Depth-first search

Dictionary, 204, 687688

binary trees as, 152153

dynamic, 598599

problem, 529

Dictionary ADT, 197, 198, 212

Dictionary operations, 207

analysis of dictionary operations, 207209

Difference operation, 868869

Diffracting balancers, 750

Diffracting trees, 750

Diffusing computation tree, 748

Diffusion layer, 817

Digital searching, see Radix searching

digitNumber field, 452

Digit numbers, compressed tries with, 452454

digitValue, 448

digraph, see Directed graph

Digraph, DFS, 57

Dihedral case, 729

Dihedral symmetry, displaying, 732

Dijkstra’s algorithm, 616, 689

Dijkstra’s label-setting algorithm, 63

Dijkstra’s shortest-path algorithm, 63, 659

Dimensionality, 309, 999

Dimension reduction approach, 899

Directed acyclic graph (DAG), 511, 938, 948, 956, 959

effective depth of, 512

of five versions, 520

Directed acyclic word graph (DAWG), 477, 479, 920; see also Compact DAWG

constructing DAWG in linear time, 482

modifying, 484486

property, 477478

simple algorithm for constructing, 481482

Directed Area Enumeration, 820

Directed graph (digraph), 49, 50, 581, 584, 805

Kleene closures, 584585

locality, 585586

long paths, 585

matrices, 586587

Direct page addressing, 974, 975

Direct preprocessing, 473

Discrete event simulation, 427

Discrete geometry, 377

Discrete partition, 937938

Discrete random variable, expected value of, 201

Disjoint set union-find problem, 538

classical union-find problem and variants, 539540

Disjunctive normal forms (DNFs), 501, 506

Disk access model (DAM), 988

Disk-based environment, 233234

Disk model, 419420

DiskRead function, 234

Disk space management, data structures for, 976

file organization, 980981

page organizations, 978980

record organizations, 976978

Disk space manager, 968

DiskWrite function, 234

Dismissals of false alarms, 365

Distance, 5153

distance-based techniques, 914

joins, 353

predicate, 879

query, 872

Distributed consensus algorithms, 986

Distributed memory multiprocessors, 949

Distributed R-trees, 343

Distribution sweep(ing), 421, 422423

Divide-and-conquer, 880, 1021

algorithms, 12, 13, 175, 726727, 879

construction algorithm, 315316

problem-solving paradigm, 268

technique, 582

Division, hashing by, 118

DNA sequences, 918

DNFs, see Disjunctive normal forms

Document stores, 984

Dopants, 817

Double-compare-and-swap (DCAS), 752

Double-ended priority queues (DEPQs), 77, 97; see also Meldable priority queues

application, 9798

deaps, 108111

generic methods for, 111112

interval heaps, 100105

MDEPQs, 113

min-max heaps, 105108

SMMH, 98100

Double ended queues (Deques), 31, 512, 607, 752

of elements, 523

Double hashing, 124

Double rotation, 154

Doubling technique, 607, 630

Doubly connected edge list (DCEL), see Halfedge data structure

Doubly linked circular lists, 30

Down buffers, 557, 558

Downward pointers, see Branch-node pointers

Downward traversal, 466

Drawing algorithm input, 729

Drawing trees

hv-layout, 719720

level layout for binary trees, 709710

level layout for n-ary trees, 710718

preliminaries, 708709

radial layout, 718719

typical layout of binary tree, 708

DRC, see Design Rule Checking

Drill bit models, 859

Driscoll, Sarnak, Sleator, and Tarjan (DSST), 511, 512, 516

limitations of transformations, 512

droppedElement, 107108

Druglike chemical space, 935

DSST, see Driscoll, Sarnak, Sleator, and Tarjan

DS-Viewer system, 704

DT, see Delaunay graph; Delaunay triangulation

Dual heap, 491, 492

Duality, 10161017

transform, 1016, 1017

Dual plane, 1016

Dual priority queues, 111

Dual structure method, 111

Dual transformed space, 360

Dynamic algorithms, 349, 583

Dynamic arrays, 24, 607

Dynamic B-trees, 550

density based, 550552

exponential tree based, 552553

Dynamic binary trees, 602603

Dynamic bit vector problem, 606

Dynamic computational geometry, 377

Dynamic convex hulls, 10191020

Dynamic counting problem, 10471048

Dynamic data structures, 421, 435

continuously moving items, 436437

logarithmic method for decomposable search problems, 435436

Dynamic dictionary, 598599

Dynamic environments, 892

bloom-g in, 144

Dynamic finger search trees, 171172; see also Randomized finger search trees

Dynamic finger theorem, 185

Dynamic graphs, 577, 581

algorithms, 574, 581

all-pairs shortest paths, 591592

connectivity, 587588

directed graphs, techniques for, 584587

minimum spanning tree, 588589

transitive closure, 589591

undirected graphs, techniques for, 582584

Dynamic hash files, 980

Dynamic hashing, 127

Dynamic interval management, 432

Dynamic map labeling, 873

Dynamic multi-level tree algorithms, 793

“Dynamic Optimality Conjecture”, 185

Dynamic perfect hashing, 120122

Dynamic programming, 224, 881

recurrences, 223

Dynamic queries, 890

Dynamic reporting problem, 10461047

Dynamic rule, 767

Dynamic set

bloom filter for, 146147

intersections and subset testing, 537538

Dynamic setting, 567

Dynamic simulation, 889, 896

Dynamic subset testing problem, 537

Dynamic tree

clustering techniques, 574

ET trees, 567, 577578

linking and cutting trees, 567, 568571

membership, 567

reachability trees, 567, 578579

topology trees, 567, 571574

top trees, 567, 574577

Dynamic variable ordering, 503

Dynamization, 291

static algorithms, 583

DynamoDB, 986

E

Eager learners, 1001

EC, see Extended connectivity

ECFP, see Extended connectivity fingerprint

edags, see Elimination dags

Edge-deletions, bounding size of Bd,su under, 621

maintaining BFS tree, 622

technical details, 622

Edge-flip, 382

Edge information, 454

compressed tries with, 454456

Edge(s), 576, 581, 862, 863

algebra, 288

attributes, 278, 280, 281

bends, 723

contraction, 279280, 284287

crossings, 723

deletion, 279, 283284

insertion, 279, 283284, 587

label, 461, 468

quadtrees, 267, 906907

resolution, 723

ring, 287

Editing, 1002

Efficiency, 380, 680

efficient symbolic factorization, 950951

Element, 131, 454, 681

Elementary operations, 331, 945

Elementary range, 294

Elimination

directed acyclic graph, 945

forest, 947

game, 946947

ordering, 946, 954

technique, 749, 752

Elimination dags (edags), 959, 960, 961

column elimination tree, 959960

elimination structures for asymmetric multifrontal algorithm, 962

Elimination structures, 945

applications of etrees, 950953

clique covers and quotient graphs, 957959

clique tree, 945, 954956

column elimination trees and elimination dags, 959962

elimination tree, 946950

Elimination tree, 945947

algorithm, 948949

data structure, 947948

elimination game, 946947

skeleton graph, 949

supernode, 949950

EM, see External memory

Empty-circle condition, 1022

Empty circumcircle property, 1033

Empty pointers, 160

Empty string, 477

EMST, see Euclidean minimum spanning tree

Enclosing interval searching problem, 293, 296

Encode set, 132

End-point array, 767768

Entity-relationship diagrams, 707

Entropy

Huffman codes and, 220

of subdivision, 1032

Entry coordinate, 298

Ephemeral data structures, 511

Epochs, 533

ε-approximation, 398

ε-cutting, 397

ε-net, 398

Equal-length prefixes sets, 768769

Equality testing, 533535

Equidepth histograms, 973

Equivalence classes, 53, 478, 484, 535, 919, 920

EQUIVALENCE statements, 538

Equiwidth histograms, 973

Error rate, 95

Etrees applications, 950

efficient symbolic factorization, 950951

predicting row and column nonzero counts, 951952

scheduling out-of-core factorizations, 953

scheduling parallel factorizations, 952953

three classes of factorization algorithms, 952

ET trees, see Euler tour trees

Euclidean minimum spanning tree (EMST), 1023, 1034

Eulerian graph, 6566

Eulerian trail, 65

Euler’s formula, 1018

Euler tour trees (ET trees), 567, 577, 582

applications, 578

data structure, 583

traversal, 688

updates, 578

Event, 199, 378

KDS, 382

queue, 378

Evolutionary web graph models, 808

Exact-match query, 234, 240, 241

Exact searches, 935, 936

canonical labeling methods, 937938

canonical representations, 936937

graph theoretic representations, 936

EXCELL, 255, 256

Exclusive mode, 754, 755

Exit coordinate, 298

Expanded rectangles, 822823

Expectation of X, 200201

Expected mean of X, see Expectation of X

Expected value of discrete random variable, 201

Expected value of X, see Expectation of X

Explanatory variables, 998

Exponential backoff lock, 747

Exponential growth models, 808

Exponential layout, 552

Exponential level based priority queue, 557

analysis, 559560

layout, 558

operations, 558559

structure, 557558

Exponential search, 171

trees, 628, 632633

Exponential tree based structure, 552553

Expression trees, 40, 968, 969, 972973

Extended binary tree, 70

Extended connectivity (EC), 937

Extended connectivity fingerprint (ECFP), 939

Extended trees, 841, 842

Extendible hashing, 127

Extending LEDA to secondary memory (LEDA-SM), 884

Extensibility, 654

eXtensible and fleXible Library (XXL), 884

Extensible hash files, 980

Extensible hash table, 754

Extent problems, 382

External algorithms, 879

index on both spatial relations, 880

index on none of inputs, 880881

index on one spatial relation, 880

External boundary vertices, 574

External degree, 571

External fractional cascading, 422

External fragmentation, 598

“Externalizing” plane sweep algorithms, 422

External marriage-before-conquest, 422

External memory (EM), 421

algorithms, 419, 421424, 10451046

design criteria for EM data structures, 420421

disk model, 419420

dynamic and kinetic data structures, 435437

finger search trees, 173

online data structure, 421

related problems, 434435

spatial data structures and range search, 428434

tree data structures, 424428

External merge sort, 970

External nodes, 37, 70, 152

External path length, 37

Extractmin, 93

operation, 85, 88

Extra fields, 517

Extremal sets and subset testing, 535

dynamic set intersections and subset testing, 537538

static extremal sets, 536537

Extremal sets problem, 536 F

Faces, 725, 862, 1014, 1028

attributes, 278, 280, 281

Factorization, 953, 956

Failure-detection protocols, 986

Fair split, 411

False negative, 132

False positive, 132, 352

probability, 133

ratio, 133134, 137, 139, 142, 145

False sharing phenomenon, 743

Farach’s algorithm, 467

Faster randomized algorithms, 635

Fat Inverted Segment tree (FIS-tree), 791792

Fat nodes, 519, 521

method, 511, 516

Fat regions, 406, 410

Fat-triangle, 1045

FCFS hashing, see First-come first-served hashing

FD, see Fixed length-depth

Fetch-and-φ structures, 749

combining, 749

counting networks, 750

Fibonacci heaps, 69, 86, 8992; see also Skew heaps

data structure, 85

Fibonacci number, 155

Fibonacci trees, 708

FID, see Fully indexable dictionary

FIFO, see First in first out

File, 976, 980

formats, 859

index data structure, 799

path, 947

File organization, 980981; see also Page organizations; Record organizations

Filled graph, 946, 949

Filtering, 421

Filter-refinement approach, 872, 883

Fingerprints, 801, 939

compression, 940

Finger search trees, 155, 171, 179; see also Balanced binary search trees (BBST)

adaptive merging and sorting algorithm, 176177

applications, 175

arbitrary merging order, 175176

dynamic finger search trees, 171172

level linked (2,4)-trees, 172173

list splitting problem, 176

optimal merging and set operations, 175

randomized finger search trees, 173175

Fine-grained locking scheme, 743

FinishPointer, 774

Finite element methods, 323

Finite trees, 151

First-come first-served hashing (FCFS hashing), 125

First in first out (FIFO), 31, 192

dynamic tree implementation, 193194

First matching rule in table, 766, 783

FIS-tree, see Fat Inverted Segment tree

Fixed-grids, 252, 256

Fixed-length records, 977

Fixed-stride trie optimization (FSTO), 771

Fixed-stride tries (FSTs), 770772

Fixed length (FL), 361

Fixed length-depth (FD), 361

Fixed size alphabet, 463

Fixed string of diamonds, 730

FKS-(α/2) data structure, 121

FKS-α data structure, 120121

FKS hashing scheme, 597

FL, see Fixed length

Flexibility, 680

FlightDijkstra class, 694695

Flight simulators, 857

Flip bit, 288

Float-kernel, 656

Floating point Cartesian coordinates, 656

Floats data type, 699

Floorplan representation in VLSI, 833, 834, 849

combinations and complexities of representations, 834835

extra constraints, 854

graph based representations, 837844

motivation of representation, 834

placement based representations, 844850

rectilinear shape handling, 851853

relationships of representations, 851

slicing, mosaic, LB compact, and general floorplans, 835837, 838

statement of floorplanning problem, 833834

Flow, 190, 765fn

across cut, 190

Flow-Excess, 190

FM-index, 917, 926

algorithm, 928, 929

fast rank and select operations using wavelet trees, 929931

problem of searching patterns in string, 931

simple scheme supporting Rank queries on binary string, 931

suffix array and Burrows–Wheeler transform, 927

theorem, 927929

Fonts, 859

Force directed methods, 737

Forced reinsertion, 429

Forest

forest-structured Bloom filter, 146

ordered set of trees, 37

set of trees, 53

Forest of Quadtrees (FQT), 903, 907, 909910

Fortune’s algorithm, 1021

4-dimensional real-life classifier, 785

Four-dimensional space, 251

Four-sided queries, 563

FP-growth algorithm, 1005, 1007

FP-tree structure, 10051007

FQT, see Forest of Quadtrees

Fractal trees, 991992

Fractional cascading, 10291030

Fractional cascading, 990, 991

Fragmentation, 979

Freelist, 752

Free tree, 35

Frequent itemsets, 1003

Frequently-encountered problem, 58

Frontier-based methods, 507

FSTO, see Fixed-stride trie optimization

FSTs, see Fixed-stride tries

Full path method, 519

Fully dynamic algorithms, 582, 589

Fully dynamic connectivity, 574

problem, 587

Fully dynamic graph problem, 581

Fully dynamic minimum spanning tree, 588589

problem, 574

Fully dynamic tree membership, 573

Fully indexable dictionary (FID), 597, 598

Fully persistent data structures, 511

Functional data structures, 639

binary search trees, 642644

data structures in functional languages, 639640

decreased synchronization, 640

difficulties, 649

fewer bugs, 640

functional data structures in mainstream

languages, 640

increased sharing, 640

in mainstream languages, 640

skew heaps, 644649

stacks, 640642

Functionality, 343, 680

Functional languages, data structures in, 639640

Functional programming language, 641

Functions, 605606

Fundamental primitives, 546

k-merger, 546, 548550

van Emde boaz layout, 546548

Fundamental supernodes, 950, 960

Funnel heap structure, 554, 555

Funnelsort, 548, 550, 554

Furthest-site Voronoi diagram partitions, 1022

Fusion tree, 597, 628, 630632

G

Gabriel Graph (GG), 1023, 1034

Garbage collection, 640

Garsia-Wachs algorithm, 216, 224, 226, 227, 228

Gaussian elimination, 945, 946, 957, 958

Gauss map, 897

GB(c)-trees, see General balanced trees (GB-tree)

GB-tree, see General balanced trees

GDAL, see Geospatial Data Abstraction Library

GDBX system, 704

GELO system, 702, 703

GEM alignment tool, 927

Genbank, 923

Genealogical information, 35

General balanced trees (GB-tree), 160161

General floorplans, 835837

constraint graphs for, 838

example, 851

O-tree representation, 844

General graph, 49

Generalization

of bloom-1, 140141

of convex drawing, 737738

of map, 873

Generalized-element model, 957

Generalized grounded range reporting problem, 1048

Generalized half-space range searching, 10491050; see also Persistence-based approach; Sparsification-based approach

Generalized intersection searching; see also Nearest neighbor searching

adding range restrictions, 10531054

approach for reporting problems, 10521053

arbitrarily oriented objects, 1045

axes-parallel objects, 10441045

exploiting output size, 10541055

external memory and word-RAM algorithms, 10451046

geometric intersection searching problems, 10431044

persistence-based approach, 10501052

problems on grid, 1045

reverse transformation, 10551056

single-shot problems, 1045

sparsification-based approach, 10481050

summary of known results, 10441046

techniques, 10461056

transformation-based approach, 10461048

Generalized lists, 31

Generalized one-dimensional range searching problem, 1046

Generalized reporting problem, 10431044

Generalized search trees (GiSTs), 756

Generalized semidynamic

quadrant searching, 10501051

two-dimensional range searching, 1051

Generalized suffix trees, 466

Generalized three-dimensional range searching, 1050, 1052

Generalized two-dimensional quadrant range searching, 1050

General orthogonal 2-D range search, 433434

General polygonal models, 892

interference detection using trees of oriented bounding boxes, 893896

performance of bounding volume hierarchies, 896

Generating function framework, 809810

Generic algorithms, 667

Geodesic triangulations, see Pseudo-triangulations

Geographic information systems (GISs), 251, 343, 359, 419, 871, 878

applications, 872

cartographic generalization, 873

data mining, 874

geometric data structures, 872

geometric objects, 871

geometric operations, 872

map labeling, 873

map overlay, 873

models, toolboxes, and systems for geographic information, 882

open source systems and research prototypes, 883

road maps, 873874

space filling curves, 874879

spatial database systems, 883

spatial join, 879882

spatial libraries, 883884

spatiotemporal data, 874

standardized data models, 882

topological vs. metric data, 872

Geography Markup Language (GML), 882

GeoJSON, 882

Geometric

algorithms, 783, 788, 884

AQT, 790791, 792

attributes, 378, 871

automorphisms, 728

computing, 277

cross-producting, 789790

data, 331

data structures, 872

distribution, 202

dynamic multi-level tree algorithms, 793

entity, 332, 334, 338

FIS-tree, 791792

graphs, 384

grid-of-tries, 788789

intersection searching problems, 10431044

objects, 429, 871, 872

operations, 872

primitives, 892

relation, 378

sampling, 398399

scene, 658

set systems, 399

software libraries, 872

structures, 385

2-dimensional classification scheme, 790, 791

Geometry, 882

Geometry Engine, Open Source (GEOS), 883884

Geometry Kernels, 656

GEOS, see Geometry Engine, Open Source

Geospatial Data Abstraction Library (GDAL), 882, 883

Geotagging, 269

GeoTools, 883884

GeoWin, 358

GG, see Gabriel Graph

Giant components, emergence of, 811

GISs, see Geographic information systems

GiSTs, see Generalized search trees

GJK algorithm, 892, 896897

Global rebuilding

approach, 535

operation, 121

GML, see Geography Markup Language

Golumb code, 800

Good BSP trees, 337338

Good nodes, 910

Google Chubby projects, 986

Gossip-style protocol, 986

Gouraud model, 861

GPA, see Grade point average

GPS

devices, 874

systems, 370

Grade point average (GPA), 969970

Graham’s scan, 1018

Graph(s), 277, 686687, 938, 960

based representations, 837

connectivity, distance, and spanning trees, 5154

constraint graphs, 838841

corner stitching, 841

databases, 984

data structures, 655

data type, 657

digraph with 6 vertices and 11 edges, 50

Eulerian and Hamiltonian graphs, 6566

graph-based approach, 833

“graph-like” representations, 533

graph-theoretic approach, 935

graph-theoretic representations, 935

MST, 5862

pseudograph of 6 vertices and 10 edges, 50

representations, 50, 52

representations, 603

searching graph, 5456

shortest paths, 6265

simple applications of DFS and BFS, 5658

single tree representations, 842844

theoretic representations, 936

traversals, 688689

twin binary tree, 841842

undirected graph with 5 vertices and 6 edges, 50

weighted graph representation, 51, 52

Graph Drawing, 707, 723

convex drawing, 726728

has-a-joint-paper-with Relation, 724

preliminaries, 725726

prerequisite diagram, 725

symmetric drawing, 728732

two drawings of graph, 724

two drawings of social network, 724

visibility drawing, 732737

Graphical display of data structures, 698

GraphLibrary (libG), 655

GraphWin, 657658

Graycode, 315

Gray code curve, 875

Gray encoding, 320321

“Greedy” algorithms, 62, 216, 217, 955

Greengard’s fast multipole method, 323

Grid

cells, 252, 255

directory, 255

file, 255, 256, 429, 876, 970

grid-based methods, 323

grid-of-tries, 788789

placement, 845

problems on, 1045

vertex, 347

Grounded 2D-range search problem, 305306

Grouping process, 256

Group mutual exclusion, 748

Group queries, unified algorithm for, 319

Growth model, 807

Gunther’s algorithm, 352

H

H2GIS, 883

Halfedge data structure, 281; see also Kinetic data structures (KDS); Layout data structures; Online dictionary structures; Spatial data structures

access functions, 282

edge insertion and deletion, 283284

effects of half_splice, 283

vertex split and edge contraction, 284287

Halfedge data structure, 872, 1021

Half-space in d-dimensional space, 261fn

Halfspace range searching, 435

Hamiltonian graph, 6566

Hand, 172

Hand-over-hand locking approach, 753

Haptic rendering, 889

Hardware, 857858

bitmap-intersection, 796797

hardware-based algorithms, 795

ternary CAMs, 795796

Hardware depth buffer, 384

Hash-based cache, 501

Hash-based indexes, 969

Hash-based join approach, 353

Hash complexity, reducing, 146

Hashed consing, 532

Hash files, 980

Hash functions, 117, 118, 132fn

Hashing, 152, 318

approaches for improved searches, 940941

with chaining, 122

by division, 118

by multiplication, 118119

with open addressing, 123

HashtableDictionary, 687

Hash tables, 117, 612, 754

developments, 127

historical notes, 126

for integer keys, 118122

operations, 506

random probing, 122126

Hash tree structure, 10041005

Hash trie, 531533

Hash value, 117

Haskell

binary search trees in, 643

skew heaps in, 645

stacks in, 641

Hasse diagram, 479

hB-tree, 258, 429

Hbase, 984, 986, 988, 989, 990, 992

HBLTs, see Height-biased leftist trees

HBSTR-tree, 360

Header, 977

Header page, 980

Heap-on-Trie (HoT), 793

Heap(s), 44, 77

deletion, 4546

files, 980

heap-based priority queues, 756757

insertion, 45

max-heap, 44

order, 173, 599

priority queues, 44

Height balanced trees, 180

Height-biased leftist trees (HBLTs), 70

deletion of arbitrary element from max HBLT, 74

deletion of max element from max HBLT, 72

initialization, 7274

insertion into max HBLT, 71

max trees, 71

melding two max HBLTs, 72, 73

Height limited Huffman trees, 220

algorithm for coin collector problem, 221222

reduction to coin collector problem, 220221

Height of trie, 447

Heights of subtrees, 154

Heterogeneous arrays, 2526

Heuristic(s), 793

algorithms, 345, 783

HiCuts, 793794

optimization, 346

optimizing algorithms, 834

RFC, 793, 794

tuple space search, 795

HiCuts, see Hierarchical intelligent cuttings

Hidden surface removal, 867

Hierarchical clustering, 10071008

Hierarchical information, 35

Hierarchical intelligent cuttings (HiCuts), 793794

Hierarchical motion descriptions, 386

Hierarchical partitioning, 434

Hierarchical tries, 787, 788

Hierarchy generation, 893

High confidence bounds, 198, 199

High-dimensional data, problems with, 1009

Highest-priority matching, 777; see also Most-specific-range matching

data structure BOB, 777778

search for highest-priority matching range, 779

Highest-priority rule, 766

High-level data, 903

High-level image processing, 903

Highly recurring oligonucleotides, 917

High probability bounds, 198

High-speed on-die cache memory, 132

High-throughput screening, 935

Hilbert curve, 347, 875, 876877, 878

Hilbert R-tree, 429

Hilbert sort (HS), 349

Hilbert tree, 346348

Hilbert value, 347

Hinted Quad Trees (HQT), 829830

Histograms, 881, 973974

Historical R-tree (HR-trees), 368

Historical shortest path, 586

Historical synopsis, 367

History DAG, 1031

History graph, 10311032

Homology, 845

Hopcroft’s problem, 401

Horizontal-vertical (hv), 719

hv-layout, 719720

hv-layout algorithms, 708

HV Trees, 829

Horizontal combination, 719

Horizontal O-tree, 842, 844

Horizontal pointers, 204

HoT, see Heap-on-Trie

HQT, see Hinted Quad Trees

HR-tree, 360, 368, 370

HR-trees, see Historical R-tree

HS, see Hilbert sort

“Hubs”, 805

Huffman algorithm, 215

Huffman algorithm for t-ary trees, 220

Huffman codes, 216

and entropy, 220

HuffmanCost(S), 216, 217

Huffman trees, 216, 226

Huffman algorithm for t-ary trees, 220

Huffman codes and entropy, 220

linear time algorithm for presorted sequence of items, 218

O(n log n) time algorithm, 217

relation between general uniquely decipherable codes and prefix-free codes, 218219

Hydrogen-excluded representation, 936

Hydrogen-included representation, 936

Hyperoctrees, 309

Hyperplane, 329, 332, 333, 401

Hyperrectangles, 298

I

IDE, see Integrated development environment

Image acquisition, 903

Image array, 259

Image data structures; see also Kinetic data structures (KDS); Layout data structures; Online dictionary structures; Spatial data structures

CBIR systems, 914915

image data, 904905

octrees, 911912

quadtrees, 905907, 910911

R-trees, 910911

TID, 912914

virtual quadtrees, 907910

Image dilation, 263

Image manipulation/analysis, 903

Image processing, 903

applications, 320

connected component labeling, 322

construction of image quadtrees, 321

gray encoding, 320321

rotation and scaling, 321

union and intersection of images, 321

Image quadtrees construction, 321

Immediate subcells, 312, 313, 314, 317

Immediate supercell, 312

Immutability, 639

Immutable data structures, 639

Immutable nodes, 647648

Implicit data structures, 98

Implicit representation of balance information, 159160

Improved decremental algorithm for APASP up to distance d, 622624

Incense system, 701

IncidenceListGraph, 687

Incidence preserving, 1016

Inclusion exclusion pruning, 814

Incorporating randomness, 197

Incremental dynamic graph problem, 581

Incremental graph problem, 581

Incremental landscape, 482, 484

Incremental penetration depth computation, 897

implementation and application, 898

initialization and refinement, 897898

local walk, 897

Independence of two events, 200

Independent set of vertices, 1029

Index

on both spatial relations, 880

compression, 800

generation efficiency, 360

granularity, 800801

index-nested-loop join algorithm, 970

multi-dimensional indexes, 970

on none of inputs, 880881

one-dimensional indexes, 969970

on one spatial relation, 880

structure, 260, 423, 969, 980

Indexability, 434

Indexable bitvector, 597

Indexable circular deques, 607

Indexable dictionary, 597598

Indexing

hybrid type of indexing methods, 360

mechanisms, 864

Indirect addressing, 978

Indirect page addressing, 975

Inductance, 818

Induction

hypothesis, 620

step, 485, 620

Influential variables, 502

Information processors, 679

Information retrieval, 799

Information-theoretic O(log n) barrier, 628

Information visualization, 697

Initialization, 897898

HBLTs, 7274

interval heap, 103

Inner convex drawings, 738

Inner radius, 406

In-order invariant, 152

Inorder traversal, 40, 152

of threaded binary tree, 4142

Input communication, 419

Input data distribution, 355

Input/output (I/O), 343

algorithms, 419

cost, 246, 421, 426

cost of insertion, deletion and exact-match query, 245

efficient algorithms, 1045

high I/O performance, 987

I/O-model, 545, 546

model, 546, 548

performance, 427

two-level I/O-model, 545

“Insert 23” operation, 992

Insert algorithm, 236, 241242

Inserting element, 457458

deaps, 109, 110

interval heaps, 101102, 103

min-max heaps, 105106

Inserting into trie, 449

Insertion, 152, 160

algorithm, 317

max-heap, 45

into max HBLT, 71

of object, 362

in RBST, 210211

sort, 25

sort algorithm, 176

of string, 466

Insert operation, 14, 80, 85, 182, 197, 554

BSTs, 4243

InspectableBinaryTree, 686

InspectableGraph, 687

InspectableKeyBasedContainer, 687

InspectableTree, 686

Instance, see Records

IntegerDijkstraPathfinder class, 693694

IntegerDijkstraTemplate class, 690693

Integer keys, hash tables for, 118

dynamic perfect hashing, 120122

hashing by division, 118

hashing by multiplication, 118119

static perfect hashing, 119120

universal hashing, 119

Integers data type, 699

Integrated development environment (IDE), 699

Intention content, 700

Interference detection, see Collision detection

Interior-based representation, 259

Internal memory, 429, 431

Internal nodes, 37, 70, 152, 972, 1031

Internal path length, 37

Internet-of-Things (IoT), 983

Internet Protocol (IP), 765

highest-priority matching, 777779

longest matching-prefix, 767777

most-specific-range matching, 780780

prefixes and ranges, 766

router tables, 765

Internet router, 765, 783

Inter-object spatial relations, BSP tree representation of, 330

Inter-object visibility orderings, 336

Intersection

bound, 941

of images, 321

model, 882

operation, 868

predicate, 879, 881

queries, 344345

query, 425, 428

Interval graph, 291

Interval heaps, 98, 100, 102

complementary range search problem, 104105

complexity of interval heap operations, 104

initializing interval heap, 103

inserting element, 101102, 103

removing min element, 102103, 104

Interval intersection graph, 291

Interval query, 368369

Interval tree, 263, 291, 292, 901

construction, 292293

example and applications, 293294

Intra-object visibility, 333

Invariants, 588

Inverse Ackermann’s function, 322

Inverted indices, 799, 942

index compression, 800

index granularity, 800801

Inverted list, 252, 799

Inverter, 817, 819

Invocation, 548

IoT, see Internet-of-Things

IP, see Internet Protocol

IPv4

prefix sets, 771

router tables, 770

Irregular arrays, 27

Iso-oriented rectangles, 291

Isolated vertex, 53

Itemset, 1003

Iterated logarithm function, 539

Iterator(s), 668, 674, 682683

basics, 674676

classes, 667

iterator-based tree traversals, 688

reverse iterators, 676

J

Jaccard coefficient of similarity, 802

Java, 26

applications, 883

binary search trees in, 643

language, 640

programming language, 679

skew heaps in, 646

stacks in, 641

Java collections (JC), 679, 681

Java generic libraries (JGL), 679, 681

JC, see Java collections

JDSL, see Data structures library in Java

JGL, see Java generic libraries

Join algorithms, 352

Join operations, 183

Join procedure, 211

JPG file formats, 859, 860

JTS Topology Suite (JTS), 883884

K

Käräkkanen and Sanders’ algorithm, 467468

k-ary tree, 3536, 253

k-cells, 1014

k-crossing filter set (k-CFS), 790

k-cut, 413

kd–B-trees, 429

KDD, see Knowledge discovery in databases

k-DOP-tree, 893

kD-range, 298, 301

KDS, see Kinetic data structures

k-d tree, 254, 256, 261, 311, 331, 343, 360, 412, 426, 560, 826, 892, 1036

nearest neighbor search in, 1037

set of points in plane, 1036

KeyBasedContainer, 687

Keys, 152

dictionaries, 687688

with different length, 446447

field, 445, 980

key-based containers, 682, 687

key-based partitioning, 991

key-value stores, 984

priority queues, 687

Kinetic data structures (KDS), 378, 435; see also Layout data structures; Online dictionary structures; Spatial data structures

application survey, 381

collision detection, 383384

connectivity and clustering, 384

continuously moving items, 436437

convex hull example, 378379

convex hull, revisited, 380381

event, 382

extent problems, 382

logarithmic method for decomposable search problems, 435436

motion in computational geometry, 377

motion models, 377378

open problems, 385387

performance measures for, 379380

proximity problems, 382, 384

querying moving objects, 387

triangulations and tilings, 382383

visibility, 384385

Kinetic methods, 383

Kinetic motion-sensitive algorithms, 386

Kirchoff voltage law, 840

Kirkpatrick’s algorithm, 10281029

Kleene closures, 584

logarithmic decomposition, 585

recursive decomposition, 585

Kleinberg’s HITS algorithm, 805

k-merger, 546, 548

binary mergers and merge trees, 548549

funnelsort, 550

k-nearest neighbors, 320

classification algorithm, 1001

k-nearest neighbor joins, 881

query, 367

k-neighbor trees, 162

Knowledge discovery in databases (KDD), 997

Knowledge processing application, 507

Kraft’s inequality, 219

Kruskal’s MST algorithm, 59, 60

L

Label-correcting method, 63

Labeled buffer, 430

Labeled Hilbert, 431

Labeled naive, 430

Labeled universe, 531

Label of directed path, 477

Laguerre diagram, 1022

Land use, 873

Large binary objects (LOBs), 968

Large environments, 898

algorithms for, 890

multiple-object collision detection, 899900

two-dimensional intersection tests, 900901

Large objects (lobs), 977

Largest strongly connected component, 806

Larmore-Hirschberg algorithm, 215, 216

Last-come first-served hashing (LCFS hashing), 125126

Last in first out (LIFO), 31

Las Vegas type algorithms, 198

Las Vegas type randomized algorithm, 203

Latency, 872

Law of total probability in conditional form, 200

Laws of probability, 199

Layer, 873

Layered drawings, 735736

Layout, 547, 555, 558

editor, 819

process, 819

Layout data structures, 818, 819; see also Halfedge data structure; Multidimensional spatial data structures

corner stitching data structure, 819822

corner stitching extensions, 822826

quad trees and variants, 826830

VLSI technology, 817819

Lazy evaluation, 644648

Lazy skew heaps analysis, 648649

Lazy strategy, 373

LB compact floorplans, 835837, 838

LCA, see Least common ancestor

LCFS hashing, see Last-come first-served hashing

LCS data structure, see L-shaped corner stitching data structure

LC-tries, see Level-compressed tries

Leaf

correspondence, 112

entry updating, 363

label, 462

leaf-oriented trees, 165

node, 36, 905, 972

quads, 828

selection, 345

Least common ancestor (LCA), 174, 951

Least Weight Subsequence problem (LWS problem), 230

LEDA, see Library of efficient data types and algorithms

LEDA extension packages (LEPs), 654

LEDA-SM, see Extending LEDA to secondary memory

Left child-right sibling representation, 37

Left contour, 709

Left-deep tree, 973

Leftist orders, 426

Leftist trees, 77; see also Trees

binary tree and extended binary tree, 70

HBLTs, 7074

WBLTs, 7475

Left-justified trees property, 230231

Left-looking algorithm, 952

Leftmost canonical ordering, 728

Left tree, 195

Length of path, 215

Length of string, 477

Lens system, 704

LEPs, see LEDA extension packages

Level, 153

Level-balanced B-trees, 426427

Level-compressed tries (LC-tries), 449

Level drawings, 709

Level equivalent, 225

Leveling, 204

Level layout

for binary trees, 709710

forn-ary trees, 710718

Level linked (2,4)-trees, 171, 172173, 175

Level links, 172

Level number, 361

Level-order unary degree sequence representation, 600

Level order traversal, 41

Level-pointers, 153

Level-tiered LSM trees, 989

Lexicographic depth, 464

Lexicographic ordering, 464

Library of efficient data types and algorithms (LEDA), 653, 679, 884

algorithms, 656

availability and usage, 654

combinatorial and geometric computing, 653

correctness, 654

curve reconstruction, 661662

data structures and data types, 655656

Delaunay flipping, 663664

discussion, 664

ease of use, 653654

example programs, 659

extensibility, 654

projects enabled by, 665

shortest paths, 659661

structure, 654655

upper convex hull, 663

visualization, 657658

word count, 659

LIFO, see Last in first out

Lifting map, 1034

Limited node copying, 1029

Lin-Canny algorithm, 892

Line-based constraint graphs, 840

Linear growth models, 808

Linear hash files, 980

Linear hashing, 127

Linear in d-dimensional space, 261fn

Linear interpolation, 864867

Linearizability, 746

Linearization point, 746

Linear list, 767

Linear ordering, 315

Linear probing, 123124

Linear programming problem (LP problem), 890

Linear quadtrees, 903

Linear region quadtree, 361

Linear scales, 253, 260

Linear search, 634, 787

Linear space, 630

exponential search trees, 632633

fusion trees, 630632

spatial structures, 429

Linear speedup, 742

Linear split algorithm, 345

Linear time

constructing DAWG in, 482

tree traversal method, 471

Linear time algorithm, 467, 482, 709, 728, 732, 1036

for constructing convex drawings of planar graphs, 726

for constructing planar convex grid drawing, 727

for drawing binary trees, 707

for drawing planar graphs, 728

for presorted sequence of items, 218

Linear time construction algorithms, 463

Käräkkanen and Sanders’ algorithm, 467468

space issues, 468

of suffix arrays, 467

of suffix trees, 464466

Line data and boundaries of regions, 265268

Line quadtrees, 906

Line road data sets, 423

Line segments, 265, 268, 871

Line-swept sphere (LSS), 893

LINGO, 942

LINGOsim computation, 942

Linked lists, 28, 204, 753754

chains, 2829, 30

circular lists, 2930

doubly linked circular lists, 30

generalized lists, 31

Linking and cutting trees, 185, 567, 568, 582, 584

data structure, 186

implementation of primitives for, 189

implementation without, 192193

implementing operations on vertex-disjoint paths, 569571

operations, 185186

using operations on vertex-disjoint paths, 568569

rotation, 187188

solid trees, 186187

splay analysis in virtual tree, 188189

splay in virtual tree, 188

splicing, 188

Linking operation, 85

two heap-ordered trees and result of linking, 86

LISP functional programming languages, 532

List, 668

ranking, 427

representation, 37

splitting problem, 176

structures, 862

Little oh notation (o), 11

LL/SC, see Load-linked/store-conditional

lmp, see Locally minimal pair

LMPBOB, see Longest matching-prefix BOB

l-multiMEM-problem, 924

Load-linked/store-conditional (LL/SC), 744

Load balancing algorithm, 753

Loading algorithms, 352

Lob directory, 977, 978

LOBs, see Large binary objects

lobs, see Large objects

Locality, 380, 585586

geometric locality, 892

locality-guided work stealing algorithm, 753

locality-sensitive hashing, 435

principle of, 338

of reference, 819, 825826

Locally minimal pair (lmp), 225226

“Locally optimal” solution, 897

Local rebuilding, 155

Local retiling of space, 382

Local spinning, 743

Local walk, 891892, 897

Location, 1027; see also Point location

code, 255, 361

planar point, 554

Locator, 682

Lock, see Mutual exclusion lock

Logarithmic method, 435436, 561

Logarithmic on binary search tree, 35

Logical address, 978

Logical left spine, 648649

Logical operation, 7

Logical pointers, 978

Logical query plans, 968

Logical right spine, 648649

Logical view of tree, 648649

Logic design, 817

Logic elements, 817

Logic gates, 817

Log structured merge tree (LSM tree), 987, 988989

intuition behind, 989990

Long development time, 679

Longest common prefix, 462

Longest common substrings, 470471

Longest matching-prefix

binary search trees, 774775

end-point array, 767768

linear list, 767

PST, 775777

sets of equal-length prefixes, 768769

tries, 769774

Longest matching-prefix BOB (LMPBOB), 777

Longest prefix matching for routing lookups, 784

Longest-side k-d trees, 416

Long paths, 585

Loose quadtree, 264

Lopsided tree, 215, 226

Loser trees, 48

Lower envelope, 10141015

Lowest common ancestors, 472

Bender and Farach’s lca algorithm, 472473

suffix links from, 473

Low height schemes, 162164

Low-level data, 903

Low-level image processing, 903

LP problem, see Linear programming problem

L-shaped corner stitching data structure (LCS data structure), 823824

L-shaped tiles, 823826

comments on corner stitching, 825826

LCS data structure, 823824

parallel corner stitching, 825

rectilinear polygons, 825

space requirements of tiles, 825

LSM tree, see Log structured merge tree

LSS, see Line-swept sphere

Lune, 1034

LWS problem, see Least Weight Subsequence problem

M

MAGIC system, 819, 825

Mainstream languages, functional data structures in, 640

Maintenance contract, 15

accounting method, 1516

aggregate method, 15

potential method, 16

problem definition, 15

worst-case method, 15

Map, 670672, 873

labeling, 873

overlay, 873

visualization, 873

Mapping data to display, 704

Marker partitioning technique, 769

Market basket

analysis, 998

data, 10021003

Mark procedure, 207

Markup languages, 882

Master Equation Approach, 808

Matching basic interval, 774, 775

Match path, 926

Mathematical Graph Theory, 725

Matrices, 586587

Matrix-vector multiplications, 899900

Matrix multiplication, 89

Max-Flow Min-Cut Theorem, 190191

Max-heap, 44

Max arrays, 101

Max HBLT

arbitrary element deletion from, 74

deletion of max element from, 72

Max heap, 108

Maximal clique in graph, 949

Maximal multiple exact match, 924926

Maximal palindrome, 474

Maximum Clique Size of set of Intervals, 297

Maximum-spread k-d trees, 416

Maximum clique problem, 291, 296

Maximum elements, 43

Maximum weight spanning tree (MST), 954

MAX operator, 245246

maxPQ, 111

Max tree, 71

Max WBLT operations, 75

MB, see Megabytes

MBB, see Minimum bounding boxes

MBRs, see Minimum bounding rectangles

McCreight’s algorithm, 465466, 470

McWidget company, 16

accounting method, 1718

aggregate method, 17

potential method, 18

problem definition, 16

worst-case method, 17

MDEPQs, see Meldable DEPQs

“Mean field theory” based model, 806

Medial axis, 1033

Megabytes (MB), 859

Meldable DEPQs (MDEPQs), 113

Meldable priority queues, 77, 80; see also Double-ended priority queues (DEPQs)

amortized cost of meld operation, 8283

left and right children of nodes, 81

left subtrees of nodes in merged path, 81

Melding operation, 77

Melding two max HBLTs, 72, 73

Meld operation, 77, 80, 85, 113, 153

amortized cost of, 8283

max HBLT meld operation, 71

skew heaps for, 80

ofWBLT, 75

Membership

bits, 132

problem, 291

word, 137

Memoization, 647648

Memory contention, 742743

Memory management techniques, 506

Memory model, 595

Memory transfer, 545

MEMS, see Microelectromechanical systems

Merge, 153, 212

analysis, 556557

based priority queue, 554

layout, 555

operation, 29, 555556, 576

scheduling, 991

sort, 970

sort recurrence of equation, 13

structure, 554555

trees, 548549

Merged constraint graph, 839

Mergesort, 546

Merging

BSP trees, 336

phase, 971

process, 175

Merkle tree, 986, 987

Metanode, 908

Metric data, 872

Metric distance, 406

Microelectromechanical systems (MEMS), 823

Middle tree, 195

Min array, 101

minconf thresholds, 1003

Min heap, 108

Minimal edags, 961

Minimalistic approach, 166

Minimal perfect hash function, 127

Minimal pseudo-triangulations, see Minimum pseudo-triangulations

Minimum-degree algorithms, 957, 958

Minimum-degree ordering heuristics, 957

Minimum-time flight itineraries, 689690

Minimum AABB, 256

Minimum bounding boxes (MBB), 365, 373

leaf-level MBBs, 371

MBB-based index, 365

Minimum bounding rectangles (MBRs), 343, 365, 370, 879, 882

Minimum element, 43, 111

Minimum pseudo-triangulations, 1024, 1025

Minimum separation determination, 377

Minimum spanning forest, 59

Minimum spanning tree (MST), 58, 381, 384, 588, 689; see also n–ary trees; Ordered-tree (O-tree)

Boruvka’s MST algorithm, 62

constrained MST, 62

deletions in O(log2 n) time, 589

of graph, 35

Kruskal’s MST algorithm, 59, 60

Prim’s MST algorithm, 5961

updates in O(log4n) time, 589

Minkey queries, 567

Minkowski metric (Lm metric), 1035

Minkowski sums, 892, 896

Min-max heaps, 98, 105

inserting element, 105106

removing min element, 106108

MIN operator, 245246

minPQ, 111, 112

minsup thresholds, 1003

Min tree, 71

Model evolutionary graphs, 808

Model View, 857858

Molecular graph, 936

Molecular sequence databases, 917

MonetDB/GIS, 883

Monge property, 216, 228

MongoDB, 988

Monoid, 530

Monotone, 1023

monotone-matrix concepts, 228

subdivisions, 427

Monotonicity property, 223

Monte Carlo algorithms, 198

Morgan’s algorithm, 937

Morton encoding, 875

Morton order, 255

Morton ordering, 315

Mosaic floorplans, 835837

constraint graphs for, 839

example, 851

and representations, 852

Most-specific-range matching, 780; see also Highest-priority matching

conflict-free ranges, 780

nonintersecting ranges, 780

Most-specific-rule matching, 766

Motion, 377

formulation, 890

models, 377378

plan, 378

planning, 889, 896

sensitivity, 386

MPBSM, 423

MSQT, see Multiple Storage Quad Trees

MST, see Minimum spanning tree

Multibit tree, 943

Multi-dimensional access methods, 10081010

Multidimensional arrays, 26, 864

array of arrays representation, 26

irregular arrays, 27

row-or column major representation, 26

Multidimensional balanced binary search trees, 393, 395

Multidimensional binary search trees, 311

Multidimensional data, 251

Multi-dimensional indexes, 970, 980

Multi-dimensional packet classification

bounds from computational geometry, 786

classification algorithms, 785

data structures, 787788

geometric algorithms, 788793

hardware-based algorithms, 795797

heuristics, 793795

performance metrics for classification algorithms, 785

problem statement, 783785

range lookups, 786787

taxonomy of classification algorithms, 787

Multidimensional range search, 428

Multi-dimensional search

application to multi-dimensional search trees, 161162

structure, 331332

Multidimensional spatial data structures; see also Kinetic data structures (KDS); Layout data structures; Online dictionary structures; Spatial data structures

bucketing methods, 256259

line data and boundaries of regions, 265268

point data, 252256

rectangle data, 263265

region data, 259263

transformation approach, 251252

Multi edges, 49

Multifrontal factorization method, 957

Multigraph, see Multi edges

Multi-level index, 980

Multimaps, 670672

Multimedia systems, 359

multiMEM, see Maximal multiple exact match

Multiple-choice hashing method, 125, 126

Multiple-key index, 970

Multiple-object collision detection, 899

implementation and application, 900

one-dimensional sweep and prune, 900

Multiple elimination, 958

Multiple exact match, 924

Multiple lists in single array, 25

Multiple posting problem, 258

Multiple quad, 826, 827

Multiple Storage Quad Trees (MSQT), 827

Multiple views, 984

Multiplication, 506, 595, 627, 630

hashing by, 118119

matrix, 89, 584

Multiplicative weights, 1022

Multi-resolution representation, 335, 337

Multirooted BDDs, 498

Multisets, 669670

Multislab, 422, 431

Multistep query processing, 879

Multiversion 3D R-trees (MV3R-trees), 360, 370

Multiversion B-trees (MVBT), 360

Multiversion linear quadtree (MVLQ), 360

deletion of object in, 362

insertion of object in, 362

updating object in, 363

Multiversion linear quadtree (MVLQ), 360, 361

deletion of object, 362

insertion of object, 362

updating object, 363

Multiversion R-tree (MVR-tree), 368, 369, 370

Multi-way merging, 971

Multi-way trees, 166167, 425, 431

balanced binary trees based on, 157158

Munro’s equations, 591

Mutex, see Mutual exclusion lock

Mutual exclusion lock, 742, 747

coupling approach, 753

elision, 749

granularity, 742

lock-free counter, 745

lock-free operation, 744

MV3R-trees, see Multiversion 3D R-trees

MVBT, see Multiversion B-trees

MVLQ, see Multiversion linear quadtree

MVR-tree, see Multiversion R-tree

MX-CIF quadtree, see Bisector List Quad Trees (BLQT)

MX quadtree, 266

“Mysterious” behavior, 216

N

n–ary trees, 708709; see also Minimum spanning tree (MST); Ordered-tree (O-tree)

ancestor, 714715

apportion, 715

combining subtree and left subforest, 713714

level layout for, 710

level layout of PQ-tree, 712

PrePosition, 713

shifting smaller subtrees, 715718

spacing out smaller subtrees, 711

Nahar-Sahni algorithm, 825

Naïve approach, 364

Naive scheme, 511

NAND gate, 817

NAP, see Network Access Point

Narrow phase, 898

Nauty, see No AUTomorphism, Yes?

N-body problem, 323325

N-component, 552

Near-duplicate detection algorithm, 802

Near-duplicate documents, finding, 801802

Nearest neighbor, 5960

classification scheme, 1001

classifiers, 1001

proximity graphs for enhancing, 10011002

query, 310, 350351, 407, 425, 428, 872

Nearest Neighbor Graph (NNG), 1034

Nearest neighbor searching, 421, 10081010, 1035; see also Generalized intersection searching

approximate nearest neighbor searching, 10371038

AVD, 1038

K-d trees, 10361037

other approaches to, 1037

through point location, 1036

Nearest-X (NX), 349

Negative binomial distribution, 202203

Neighbor(s), 574

Finding operation, 820

list, 323

Nested-loop algorithm, 879

Nested clustering, see Hierarchical clustering

Network Access Point (NAP), 783

Network flows, application to, 190192

Networks, 50

newElement, 105, 109

NewSQL databases, 984

Next-generation sequencing (NGS), 926927

NGS, see Next-generation sequencing

NNG, see Nearest Neighbor Graph

No AUTomorphism, Yes? (Nauty), 937938

Node, 49, 151, 152, 344, 425, 496, 688, 826

capacity, 345

copying method, 512, 516517

deletion rule, 497

reduction rules, 497

sharing rule, 497

NodeBinaryTree, 686

Node splitting, 345, 517518

algorithm, 346

method, 516517

NodeTree, 686

Nonblocking

algorithms, 743

linearizable heap-based priority queue algorithms, 756

operator, 882

techniques, 744745

Non-canonical structures, 386387

Non-clustered index, 980

Non-convex

models, 898

polyhedral models, 899

Nondestructive updates, 531

Non-indexed data set, 352

Nonintersecting ranges, 780

Nonnegative weights, single-source shortest paths and, 6263

Nonoverlapping, 258

collinear chain of nonoverlapping anchors, 923, 924

intervals

polytopes, 897

Nonpoint data, 429

Non-robust

algorithms, 953

method, 953

Nonroot nodes, 194

Non-slicing structure, 849

Nonterminal nodes, 496

Non-uniform memory access (NUMA), 743

Nonzero element, 27

NOR gate, 817

NoSQL paradigm, see Not Only SQL paradigm

NOT gate, 817

Not Only SQL paradigm (NoSQL paradigm), 983

database workloads, 987

data stores, 983984, 987, 993

NP-complete problem, 502

N-type dopants, 817818

NUMA, see Non-uniform memory access

Number-of-brep-faces, 340

Number-of-tree-nodes, 340

Number processors, 679

Numerical linear algebra, 945

NX, see Nearest-X

O

OAT problem, see Optimal alphabetic tree problem

OBBs, see Oriented bounding boxes

OBDDs, see Ordered BDDs

Object, 332

hierarchy, 256

object-oriented language, 699

total ordering of collection of, 332333

types, 343, 890

updating, 363

OBST, see Optimal binary search trees

Obstruction-free operation, 744

OCC, see Optimistic concurrency control

Occupancy of hash table, 117

OCR, see Optical character recognition

Octants, 262

Octrees, 260, 322, 340, 412, 892, 911912; see also Quadtrees

compressed quadtrees and, 313314

representation, 913

Odd-even merge sort, 635

Offset, 977

OGC, see Open Geospatial Consortium

O(log n) Time, searching and priority queues in, 627

achieving sub-logarithmic time per element by simple means, 628630

from amortized update cost to worst-case, 633634

deterministic algorithms and linear space, 630633

model of computation, 627

overview, 628

sorting and priority queues, 634636

OM data structure, see Order Maintenance data structure

Omega notation (Ω), 11

One-at-a-time result, 959

1-bit tries, 769770

One-cut, 413

One-dimension (1D)

1D-range tree, 299

array, 26

compaction, 819

data structures, 874

indexes, 969970, 980

packet classification, 765, 783

sweep and prune, 900

1-edge, 496

One-level search tree, 800

1-terminal, 496

Online data structures, 421

Online dictionary structures; see also Kinetic data structures (KDS); Spatial data structures

additional operations, 395

balanced BST implementation, 393395

binary search tree implementations, 391393

discussion, 396

trie implementations, 390391

O(n2 log n) time, updates in, 590

O(n2 log3 n) time, updates in, 592

O(n log n) planesweep algorithm, 825

O(n log n) time algorithm, 217

O(n2) time, updates in, 591

O(nβ+2)-timedynamic programming algorithm, 227

Open addressing, hashing with, 123

Open Geospatial Consortium (OGC), 882, 883

Open source systems, 883

Open transaction times, handling query with, 367368

Operating system, 451

Operations, 555556, 558559, 601

on array, 2425

cache, 501

counts, 45

types, 350

on vertex-disjoint paths, 568569, 569571

Operator trees, 968

Optical character recognition (OCR), 541

Optimal algorithm, 881

Optimal alphabetic tree problem (OAT problem), 216, 224226

computing cost, 224226

construction, 226

for presorted items, 226

Optimal binary search trees (OBST), 216, 222224

Optimal construction, 402

Optimal cuttings, 399401

Optimal hashing, 127

Optimality of splay trees, 184185

Optimal k, 133134

bloom-1 vs. bloom with, 139140

bloom-g vs. bloom with, 142144

Optimal lopsided trees, 216, 226229

Optimal merging, 175

Optimal paging strategy, 560

Optimal policy matrix, 65

Optimal static finger search algorithm, 171

Optimal structure, 432

Optimistic approach, 744

Optimistic concurrency control (OCC), 749

Oracle, 612, 882, 883

Orbit-stabilizer theorem, 728

Order, 969

preserving, 1016

queries, 427

Ordered BDDs (OBDDs), 496

Ordered dictionary, 151, 687

Ordered partition, 954

Ordered queries, 152

Ordered-tree (O-tree), 429, 833, 842, 844; see also Minimum spanning tree (MST); n–ary trees

building, 842

horizontal O-tree, 842

with linear lists, 843

performance, 843

representations, 844, 851, 853

structures, 835

Ordering, 255

fields, 980

invariant, 152, 165

key for file, 980

of polygons, 334

Order–kVoronoi diagram, 1022

Order Maintenance data structure (OM data structure), 516, 518

Order-preserving hash functions, 424, 425

Ordinal trees, 599601

Oriented bounding boxes (OBBs), 893, 896

implementation and application, 896

interference detection, 894895

interference detection using trees of, 893

OBB-trees, 893

OBBtree construction, 893894

representation, 895896

Original heuristics, 345

Original tree, 186

Orthogonal drawings, bar visibility representations for, 736737

Orthogonal neighbors, 876877

Orthogonal range

lower bounds for orthogonal range search, 434

queries, 561

O-tree, see Ordered-tree

Outer radius, 406

Outliers, 1009

Out-of-core

algorithms, 419

factorization, 953

Output communication, 419

Output-sensitive

algorithms, 402, 1018

query time, 1043

Output size, exploiting, 10541055

Overlap(ping)

query, 367

test, 895896

interval searching problem, 293

polytopes, 897

Overlapping linear quadtrees, see Multiversion linear quadtree (MVLQ)

Overmars-van Leeuwen structure, 1019

P

P2P search problem, see Peer to peer search problem

Packed bucketing, 635

Packed computation, 628, 629

Packed sorting, 634635

Packet, 787

packet-header information, 765

Packing algorithms, 349

Packing function, 409

Packing keys, 629630

Packing problem, 852

Page header, 978

pageID, 234

Page organizations, 978; see also File organization; Record organizations

alternative page organizations for fixed-length records, 979

slots, 978

for variable-length records, 979

Page reference list, 977

Page reference pointer, 977

Page-related pointers, 978

Pages, 234

Page table, 975

Painter’s Algorithm, 329, 332, 867

Pairing heaps, 69, 86, 9294; see also Skew heaps

adaptive properties, 94

data structure, 85

variations, 94

Pairwise independence, 200

Pairwise join method (PJM), 881

Palindrome, 474

Panning, 873

Parallel algorithms, 230

property of left-justified trees, 230231

Parallel column-oriented factorizations, 953

Parallel disk model (PDM), 419420, 421

Parallel edges, 49

Parallel factorization algorithm, 952

Parallelism, 799

Parallel R-trees, 343

Parallel Random Access Machines (PRAM), 230, 745

Parallel triangular solution, 956

Parameterization, see Transformation approach

Parasitic extraction, 818819

Parasitics, 818

parentElement, 105

parentNode, 106

Parent-pointers, 153, 426427

Parse tree, 968, 969, 971972

Partially dynamic graph problem, 581

Partially dynamic problem, 581

Partially persistent data structures, 511

Partial pivoting, 959

Partial rebuilding technique, 155, 160, 161

Partial sums, 606

Particle-based methods, 323

Partitional clustering, 10071008

Partition-Based Spatial Merge (QPBSM), 423

Partition Based Spatial-Merge Join (PBSM), 880

Partitioned Bloom filter, 145

Partitioning, 984

consistent hashing, 984985

edges, 574

process, 445

scheme, 819

tree representation of intra-object spatial relations, 330

Partition maintenance algorithms, 540542

Partition trees, 387, 402403, 426

data structure, 535

Path, 152

caching, 433

copying technique, 642644

path-balancing, 157

problems, 584

PA-tree, 368

Patricia, see Practical Algorithm To Retrieve Information Coded In Alphanumeric

Pattern discovery, 917, 918

Pattern matching, 468, 640

pattern matching using suffix arrays, 469470

pattern matching using suffix trees, 469

p-biased coin, 202

PBSM, see Partition Based Spatial-Merge Join

PD, see Penetration depth

PDM, see Parallel disk model

Peano curve, 347, 875

Peano–Hilbert order, 255

Peano–Hilbert space-filling curve, 429

Pedigree, 519, 522

Peer to peer search problem (P2P search problem), 811

Pending node, 648649

Penetration depth (PD), 897

computation, 896

convex polytopes, 896897

incremental penetration depth computation, 897898

non-convex models, 898

Perfect elimination ordering, 954

Perfect hash function, 118, 127

Performance analysis of 3D R-Trees, 367

Performance metrics, 133, 785, 987988

Performance optimizations, 990

fractional cascading, 990, 991

“Insert 23” operation, 992

Permutations, 604606

Persistence-based approach, 1050; see also Sparsification-based approach; Transformation-based approach

generalized semidynamic quadrant searching, 10501051

generalized semidynamic 2D range searching, 1051

generalized 3D range searching, 1052

Persistence, 987

B+ tree, 422, 553554, 988

intuition behind LSM, 989990

LSM-tree, 988989

performance metrics, 987988

performance optimizations, 990992

Persistent data structures, 361, 511, 639; see also Kinetic data structures (KDS); Layout data structures; Online dictionary structures; Spatial data structures

algorithmic applications, 513516

fat node method, 516

general techniques for making, 516

handling arrays, 518

making data structures confluently persistent, 518522

making specific data structures more efficient, 522

node copying, 517

node splitting, 517518

persistent deques, 524526

redundant binary counters, 524

representation of deque of elements, 523

Persistent deques, 524526

Persistent search tree, 1029

Persistent trees, 1029

Phong model, 861

Physical address, 978

Physically-based modeling, 889

Physical Plan Generator, 969

Physical pointers, 978

Physical query plans, 969

Physical trajectory, 874

π DD, 495, 507

ping, see PNG

Pipeline, 857858, 882

Pivot, 97

element, 558

Pivoting strategy, 959, 962

Pixels, 255, 904

two dimensional array of, 320

PJM, see Pairwise join method

PK-tree, 256, 258259

Placeholders, 681

Placement based representations, 833, 844

BSG, 847848

corner block list, 848849

sequence pair, 845847

slicing tree, 849850

Planar drawings, 723

Planarity, 725

Planarization algorithm, 603

Planar point location, 554

algorithm for, 513, 514

problem, 1027

Planar st-graphs, 427, 733734

Planar straight line graphs (PSLGs), 277, 1027

edge deletion, 279

edge insertion, 279

features, 277278

halfedge data structure, 281287

operations on, 279

quadedge data structure, 287288

vertex split and edge contraction, 279280

winged-edge data structure, 280281

Planar subdivision, 1028

Plane-sweep algorithm, 881, 1021

Plowing, 820

pmf, see Probability mass function

PM quadtree family, 267

PMR quadtree, 267, 268

PNG (ping), 859, 860

Point-in-polygon query, 872

Point-swept sphere (PSS), 893

Point data, 252256

Pointed pseudo-triangulations, see Minimum pseudo-triangulations

Pointed pseudotriangulations, 1024

Pointer(s), 23, 28, 92, 978

based data structure, 517

element, 454

fields, 519520

machine model, 530

triple, 449

types, 391

Point Finding operation, 820821, 825

Point location, 401, 421, 429, 786, 1027, 1028

fractional cascading, 10291030

Kirkpatrick’s algorithm, 10281029

nearest neighbor searching through, 1036

persistent trees, 1029

query, 425, 428

separating chains, 10291030

sequence of triangulations, 1028

slab-based methods, 1029

slab refinement of subdivision, 1029

trapezoidal maps and history graph, 10311032

worst-and expected-case optimal, 1032

Point quadtree, 253, 254, 310311

Point queries, 316317, 354, 987

Point region quadtree (PR-quadtree), 253, 254, 255256, 312

Point search tree (PTST), 777

Polish expression, 849, 850

Polycrystalline silicon, 818

Polygon(al), 330, 343, 350, 872, 1023

data sets, 352

line, 871

maps, 267

mesh, 858

polygon-area approaches, 338

representations, 265, 266

soups, 892

subdivision, 1028

Polyhedra, 343, 10231024

Polyhedral, 330

Polyhedral regions, 891

Polyhedron, 891

Polyline, 265

Polynomial time algorithms, 345, 936

Polytopes, 330

data structure, 891

representation, 891

Pools, 752753

Pop operation, 522, 642

Positional B+-trees, 978

Positional containers, 681, 684

graphs, 686687

sequences, 685

trees, 686

Position concept, 681682

Position heap, 478, 489

of aabcabcaa, 479

building position heap, 489490

construction, 489

improvements to time bounds, 491494

querying, 490491

for string, 478

time bounds, 491

Post-office problem, 1013, 1020

PostGIS, 883

Postorder traversal, 4041

Postprocessing, 997

Postscript

driver software, 859

font, 859

Potential method, 15

maintenance contract, 16

McWidget company, 18

subset generation, 1920

Power diagram, 382, 1022

Power distance, 1022

Power law distribution, 806, 808

PQ, see Priority queues

Practical Algorithm To Retrieve Information Coded In Alphanumeric (Patricia), 456

inserting element, 457458

removing element, 458

searching, 457

PRAM, see Parallel Random Access Machines

Predecessor, 49

pointers, 517

search, 152

Predecessor fields (p), 517

Predictive category, 998

Predictive modeling, 998

Preemption-safe locks, 747

Preferential attachment paradigm, 806, 807, 808, 809

Prefix(es), 523

node, 774775

paths, 1007

prefix-free codes, 216

range, 766

and ranges, 766

relation between general uniquely decipherable codes and prefix-free codes, 218219

search and applications, 451452

PreFlow, 190

Preflow-push algorithms, 191192

Preorder traversal, 40, 262, 316, 710

PrePosition method, 713

Preprocessing time, 513

Presorted items, OAT for, 226

Presorted sequence of items, 218

Prim-Jarník algorithm, 689

Primal heap, 491

Primary attribute, 252

Primary organization, 980

Primary storage, 233234

Prime implicant, 486, 487

Prim’s MST algorithm, 5961

Priori, 294

Priorities, 212

Priority_queue template, 672673

Priority_Search_Tree_root(S), 304

Priority queues (PQ), 44, 69, 77, 98, 304, 407, 554, 634, 687, 756

combining techniques, 635

exponential level based, 557560

further techniques and faster randomized algorithms, 635636

heap-based priority queues, 756

merge based, 554

packed sorting, 634635

range reduction, 634

tree-based priority pools, 757

Priority R-tree, 431

Priority search trees (PSTs), 263, 291, 304306, 432, 775777, 1037, 1046

construction, 304305

example and applications, 305306

PR k-d tree, 254

Probabilistic priority queues, 212

Probability density function, see Probability mass function (pmf)

Probability distribution, 199

Probability mass function (pmf), 201

Probability theory, 199

Procedure Interval_Insertion function, 295296

Process function, 319

Process visualization and debugging environment system (PROVIDE system), 704

Product-form inverse, 956

Programming languages, 23

Program visualization, 697

Projection point, 857

Projects enabled by LEDA, 665

PROVIDE system, see Process visualization and debugging environment system

Proximity, 867868, 1027

Delaunay triangulation, 10331034

geometric graphs on point set, 1035

geometric proximity structures, 10341035

graphs for enhancing nearest neighbor classifiers, 10011002

problems, 382, 384

queries, 343

set, 323

structures, 10321035

Voronoi diagrams, 10321033

“Proxy TID”, 979

PR-quadtree, see Point region quadtree

Pseudo-algebraic motions, 380

Pseudograph, see General graph

Pseudo-node, 157, 160

Pseudotriangulation, 383, 385, 10241025

of convex hull of point set, 382383

mixed, 383

pointed pseudotriangulations, 1024

pseudotriangulation-based methods, 384

PSLGs, see Planar straight line graphs

PSS, see Point-swept sphere

PSTs, see Priority search trees

PTST, see Point search tree

Public-domain libraries, 892

Pure Heap Model, 94

Pure silicon, 817

Push-up node, 240

Push operation, 522, 642

Pyramid technique, 269, 1008

Q

QGIS, 883

QLQT, see Quad List Quad Trees

QMAT, see Quadtree medial axis transform

QoS routers, 765

QPBSM, see Partition-based spatial merge

q tokens, 802

Quad-edge data structure, 287288, 1021

Quad List Quad Trees (QLQT), 828

Quadrangle inequality, 230

Quadrants, 267268, 309, 320321, 361, 790, 791, 905, 907

Quadratic Bezier curve, 866

Quadratic probing, 124

Quadtree-based approach, 259, 264, 360

Quadtree Complexity Theorem, 262, 268

Quadtree medial axis transform (QMAT), 260

Quadtrees, 252, 256, 260, 309, 312, 361, 819, 883, 903, 905, 906, 910911

basic operations, 316

cell deletion, 317

cell insertion, 317

cell orderings and space-filling curves, 314315

compressed quadtrees and octrees, 313314

constructing, 309310

construction of compressed quadtrees, 315316

with coordinates, 909

image processing applications, 320322

insertions and deletions, 317

point and cell queries, 316317

for point data, 310

point quadtrees, 310311

practical considerations, 317318

region quadtrees, 311313

representation of image, 912

scientific computing applications, 322325

spatial queries with region quadtrees, 318320

variants, 905907

Quad trees, 429, 826, 970

BLQT, 826

BQT, 828829

HQT, 829830

HV Trees, 829

k-d trees, 826

QLQT, 828

and variants, 826, 827

Quasi-bar bounds, 409410

Queries, 560561, 562563, 593, 967

algorithm, 235, 236

curve pieces for query range, 877878

data structures for query processing, 968

evaluation, 967, 968, 969

expression trees, 972973

histograms, 973974

index structures, 969970

operators, 884

optimization, 969

optimizer component, 967

parse tree, 971972

performance, 360

re-writing, 968

sorting large data sets, 970971

time, 795, 1043

types, 343, 360, 890

“Query-reply” loop, 698

Querying position heap, 490491

Query Translation and Rewrite module, 968

Queue(s), 31, 192, 522, 672, 751752

implementation, 3334

Queuelocks, 747

Quicksort, 210, 546, 548

Quiescent consistency condition, 746

Quotient graphs, 945, 953, 957958

clique covers, 957

covering column-intersection graph and biclique covers, 958959

problem of degree updates, 958

R

Rabin’s fingerprints, 801, 802

Radial layout, 718719

Radix priority-search tree (RPST), 775

Radix searching, 253

RAM, see Random Access Machine model of computation

Random-access iterators, 674

Random access, 649

Random Access Machine model of computation (RAM), 172, 530, 536, 545, 546, 561, 627

Random hash functions, 137

Randomization, 197, 583584

graph decomposition, 583584

maintaining spanning forests, 583

random sampling, 583

Randomized algorithms, 198199, 531

Randomized binary search tree (RBST), 171, 197, 209210, 212

deletion in, 211212

insertion in, 210211

Randomized data-structure

for decremental APASP, 618624

for static APASP, 611618

Randomized dictionary structures; see also Online dictionary structures

analysis of dictionary operations, 207209

Bernoulli distribution, 202

binomial distribution, 202

conditional probability, 200201

data structures, 197198

Dictionary ADT, 198

dictionary operations, 207

geometric distribution, 202

negative binomial distribution, 202203

preliminaries, 198

probability theory, 199

randomized algorithms, 198199

RBST, 209212

skip lists, 204205

structural properties of skip lists, 205206

tail estimates, 203204

Randomized finger search trees, 173

skip lists, 174175

treaps, 173174

Randomized graph data-structures; see also Cache-oblivious data structures

(2k–1)-approximate distance oracle, 613615

3-approximate distance oracle, 612613

bounding size of Bd,su under edge-deletions, 621622

computing approximate distance oracles, 616618

hierarchical distance maintaining data-structure, 619621

improved decremental algorithm, 622624

main idea, 618619

notations, 619

preliminaries, 613

randomized data-structure for decremental APASP, 618

randomized data-structure for static APASP, 611

Randomized incremental construction, 10211022, 1031

Randomized search tree, 533

Randomized set representations

hash trie, 531533

remarks on unique representations, 533

simple, 530

Random probing, 122

assumption, 122

asymmetric hashing, 125

Brent’s method, 124

Cuckoo hashing, 126

double hashing, 124

hashing with chaining, 122

hashing with open addressing, 123

LCFS hashing, 125126

linear probing, 123124

multiple-choice hashing, 125

quadratic probing, 124

Robin-Hood hashing, 126

Random sum, 203, 208

Random variables, 200201

Range allocation rule, 777

Range lookups, 786787

Range query, 240, 241, 310, 318319, 367, 425, 434, 547548, 551, 872

analytical models for, 353

for SFC data structures, 876

Range reduction, 628629, 634

Range restrictions, adding, 10531054

Range search(ing), 402, 428, 429, 434

bootstrapping for 2-D diagonal corner and stabbing queries, 431432

bootstrapping for three-sided orthogonal 2-D range search, 432433

general orthogonal 2-D range search, 433434

linear-space spatial structures, 429

lower bounds for orthogonal range search, 434

problem, 298

R-trees, 429431

structures, 387

tools, 387

Range search-tree (RST), 778

Range trees, 291, 298, 387, 560

construction, 299301

example and applications, 301304

Rank search, 153

Rank/Select queries, 931

Raster, 904

graphics, 904

images, 871, 904

Rat-kernel, 656

“Rate equation” approach, 806

Rational kernel, 656, 884

Ray shooting, 786

query, 425, 428, 872

RBPST, see Red-black priority-search tree

RBST, see Randomized binary search tree

RCS data structure, see Rectangular corner stitching data structure

RDBMS, see Relational database management systems

Reachability trees, 567, 578579, 584

Read amplification, 987989

Reader-writer locks, 747748

Read/write efficiency, 145146

Real-life classifier, 785, 795

Realism, 861, 862

Rebalancing

algorithm, 153, 154155, 156

binary search tree, 159

operations, 180

scheme, 153, 154, 155

technique, 155

tree to perfect balance, 158

Rebuilding, 155, 634

Record organizations, 976; see also File organization; Page organizations

alternative organizations of records with fields of variable length, 977

organization of records with fields of fixed length, 976

positional B+-trees, 978

Records, 976, 1000

format, 976978

type, 976978

Rectangle-swept sphere (RSS), 893

Rectangle(s), 343, 350

data, 263265

enclosure, 786

intersection graph, 291fn

Rectangular corner stitching data structure (RCS data structure), 823, 824

Rectilinear polygons, 825

Rectilinear shape handling, 851853

Recurrence equations, 12

substitution method, 1213

table-lookup method, 13

Recursion, 87, 640

Recursive algorithm, 40, 42, 222, 1037

Recursive decomposition of space, 309

Recursive flow classification (RFC), 793, 794

Recursive halving process, 253

Recursively defined SFCs, 875

Recursive process, 336, 1007

Red-black, 179, 180

method, 162

trees, 164, 165166, 774775

Red-black priority-search tree (RBPST), 775

RedBlackTree, 688

Red, green, and blue (RGB), 904

Reduced ordered BDD (ROBDD), 497, 498

Redundancy, 834, 850

Redundant binary counters, 524

Redundant binary representation, 524

Redundant counters, 522

Reference(s), 23

counter, 499

element, 454

Refinement, 897898

Reflection, 709, 731

Reflectional symmetry, 728

Regional images, 361

Regional quadtrees, 361

Region data, 259263

Region octrees, 260, 262

Region quadtrees, 260, 266, 311313, 322, 905906

k-nearest neighbors, 320

range query, 318319

spatial queries with, 318

spherical region queries, 319320

Region Search operation, 827

Regression techniques, 998, 1000

Regular decomposition, 253, 261, 264, 266

Regulatory elements, 918

Reingold-Tilford algorithm, 710, 711

Relational database management systems (RDBMS), 967, 983

Relative Neighborhood Graph (RNG), 1023, 1034

Relaxed balance, 164

AVL-trees, 166

multi-way trees, 166167

other results, 167

red-black trees, 165166

update operations, 165

Relaxed depth, 167

Relaxed height of node, 166

Relaxed multi-way trees, 167

Relaxed supernode partitions, 950

Reliability, 680

removeMax operation, 103, 112

removeMin operation, 103, 112

Removing element, 449451, 458

Removing min element

deaps, 109111

interval heaps, 102103, 104

min-max heaps, 106108

Repairable certification, 380

Replication consistency, 985

Merkle tree, 986, 987

Reporting distance with stretch at-most (2k–1), 614615

Reporting problems, general approach for, 10521053

Representative vertex, 954

Research prototypes, 700, 883

Resemblance, 802

Residual capacity, 190

Residual graph, 190

Resistance, 818

Resizable arrays, 607

Restricted Dijkstra’s algorithm, 617, 618

Restricted multilevel partition, 572, 573

Restricted partition, 571

update, 572573

Restructuring primitive, 154

Reverse-nearest-neighbor query, 367

Reverse iterators, 676

Reverse transformation, 10551056

REXP-tree, 373

RFC, see Recursive flow classification

RGB, see Red, green, and blue

RGB color value, 904

Right-deep tree, 973

Right-looking algorithm, 952, 953

Right contour, 709, 710, 715

Rightist orders, 426

Right tree, 195

Rigid circuit graphs, 954

RNG, see Relative Neighborhood Graph

Road maps, 873874

ROBDD, see Reduced ordered BDD

Robin-Hood hashing, 126, 127

Robust algorithms, 953

Room synchronization, 748

Root, 496, 708

cell, 312

level of min-max heap, 105

node, 47, 194, 452

Root*table, 362

Rooted clique tree, 954, 955

Rooted tree, 35, 53, 708

Rotational symmetry, displaying, 729730

Rotation(s), 154, 187188, 204, 321, 389, 395, 426

Routers, 165

Row-counts algorithm, 952

Row-prime order method, 255

Row indices, 950

Row nonzero counts prediction, 951952

Row order method, 255

RPST, see Radix priority-search tree

RSS, see Rectangle-swept sphere

RST, see Range search-tree

R*-tree, 883, 1037

R-tree(s), 233, 252, 256, 266, 343, 360, 429431, 880, 881, 883, 884, 910911, 970, 1037

R-trees*, 343, 346; see also Binary space partitioning trees (BSP trees)

advanced operations, 350353

analytical models, 353356

basic concepts, 343344

bulk loading, 349

hilbert tree, 346348

improving performance, 346

intersection queries, 344345

R* tree, 346

updating tree, 345346

R+-tree, 258, 259, 266, 1037

Rule-based decision-making, 914

Rule table, 765, 766, 767

Run-generation phase, 971

Running time, 198, 407, 545

S

Sample space, 199, 200, 338

Sarnak and Tarjan’s tree, 1029

Saturating push, 191

Save-points, 976

SBB-trees, see Symmetric Binary B-trees

SBB/red-black trees, 157, 158

SB-tree, 425

Scalability, 136, 742, 749, 785, 999

Scalable sweeping-based spatial join (SSSJ), 423

Scalable techniques, 742, 999

Scaling, 321, 905

Scene, geometric, 658

Scheduling out-of-core factorizations, 953

Scheduling parallel factorizations, 952953

Schönhardt’s polyhedron, 1024

Scientific computing applications, 322325

N-body problem, 323325

physical system behavior, 322323

Score function, 918, 919

Scuttlebutt gossip-style protocol, 986

SDD, see Sentential Decision Diagram

Searchable partial sums problem, 606

Search(ing), 457, 547, 553, 676, 677

BFS, 54, 56

BSTs, 42

DFS, 54, 55

engines, 478, 799, 801

graph, 54

for highest-priority matching range, 779

index, 365

operation, 14, 197, 204

problem, 291

procedures, 153

trees, 209, 513, 754756

trie, 446

Secondary clustering phenomenon, 124

Secondary organization, 980, 981

Secondary storage, 234, 468

Seeded tree creation algorithm, 352, 353

Seed levels, 352

Segments, 974

segment-oriented recovery, 976

Segment tree(s), 263, 291, 294, 422, 791

construction, 294296

example and applications, 296298

Select-from-where (SFW), 972

Select functions, 319

Selection, 676, 677

sort, 25

Self-adjusting binary search trees, 172, 571

Self-loop edges, 49, 51

Self-tunable spatiotemporal B+-tree (SP2 B-tree), 360

Self pointer, 457, 458, 459

“Semi-splaying” tree, 195

Sentential Decision Diagram (SDD), 507

Separability assumption, 540

Separating axis, 894, 895

Separating chains, 10291030

Separator decomposition tree, 603

Separators, 309, 946, 977

Sequence pair (SP), 833, 835, 844, 845847, 851

Sequence(s), 685, 924

BDD, 495, 507

containers, 667669

sorting algorithms, 688

Sequential bottleneck, 742

Sequential consistency, 746

Sequential greedy algorithm for Huffman coding, 230

Sequential pattern analysis, 999

Serializability, 746

Set abstract data type (Set ADT), 117, 119, 122, 127

SETI, spatial partition method, 360, 368

Set(s), 175, 669670, 671

ADT, 117

of combinations, 504, 506

data structures for, 529

disjoint set union-find problem, 538540

equality testing, 533535

extremal sets and subset testing, 535538

models of computation, 530

operations, 175

of operators, 363

partition maintenance algorithms, 540542

set-pruning tries, 787788

set-theoretic operations, 259

simple randomized set representations, 530533

system, 398

SFCs, see Space filling curves

SFW, see Select-from-where

Shading model, 861

Shadow bits, 976

Shadow paging concept, 976

Shannon expansion, 496

Shape handling, 851852

Shared-memory multiprocessor machines, 741, 751

Shared BDDs, 498, 499

Shared counters, 749

combining, 749

counting networks, 750

data structure, 742

Shared mode, 754

Shatter function, 398, 399

Shield region, 412, 413, 415

Shifting smaller subtrees, 715718

Shingling technique, 802

Shortcut representation, 604

Shortest elimination trees, 955

Shortest paths, 62, 585, 589, 659661

all-pairs shortest path, 6465

single-source shortest paths, arbitrary weights, 6364

single-source shortest paths, nonnegative weights, 6263

Shrinking node, 1038

Shrink operation, 410, 411

Siblings, 708

Siblings node, 36, 294295

Sides, 256, 263, 268, 1024, 1045

Sift-up operation, 86, 88, 89

Signature, 938

signature-based canonization, 938

sort, 635

Similarity, 208

detection mechanisms, 802

Jaccard coefficient, 802

Similarity search, 935, 939

bitbound algorithm, 940

combining hashing and trees, 943

fingerprint compression, 940

hashing approaches for improved searches, 940941

inverted indices, 942

LINGO, 942

multibit and union tree, 943

tanimoto similarity, 939940

triangle inequality and improvements, 941

trie-based approaches for storing fingerprints, 943

XOR filter, 941942

Similar property principle, 935

“Simpath” algorithm, 495, 507

Simple computer model, 7

Simple graph, 49

Simple means, 628630

Simple path, 65

Simple searching, 152

Simple splay trees, 195

Simple updates, 152

Simplicial partition, 402

Simulators, 817

Singlebit tree, 943

Single cells, 1014, 1015

Single-ended priority queues, 69, 98

Single-level index, 980

Single quad, 826, 827

Single-shot problems, 1045

Single Source LWS problem, 230

Single-source shortest paths

arbitrary weights, 6364

nonnegative weights, 6263

Single tree representations, 842844

Sites, 1013, 1020, 1022, 1032

Sizes of subtrees, 154

Size-tiered LSM-tree, 989

Skeleton graph, 949, 950, 956

Sketch subset, 802

Skewed tree, 39

Skew heaps, 69, 78, 644; see also Binomial heaps; Fibonacci heaps; Pairing heaps

amortized analysis, 7879

analysis of lazy, 648649

executing pending merge, 648

meldable priority queues and, 8083

merging two, 645

skew heaps with lazy evaluation in Java, 647

unbalanced, 646

Skew operation, 158

Skip fields, compressed tries with, 454

Skip lists, 173, 174175, 198, 204205, 206, 533

number of levels in, 205206

space complexity, 206

structural properties, 205

Skip value, 455

Slabs, 349, 422, 431, 433, 1029

slab-based methods, 1029

x-range, 562

Slicing

floorplans, 835837

structure, 849

trees, 833, 844, 845, 849850

Slot index spatial join, 353

“Slots”, 352, 978

Smallest quad, 826, 827

“Small motions”, 385

SMAWK algorithm, 228

SMMH, see Symmetric min-max heap

Smoothed particle hydrodynamics, 323

Smoothing strategy, 586, 592

Soap2 alignment tool, 927

Social network, 723, 724

Social security number, 445, 447

Soft heaps, 9495

Software environment, 698

Software transactional memory, 749

Software visualization, 697, 698

Solid-state storage, 145146

Solid path, 186, 569, 571

Solid state drives (SSDs), 987

Solid tiles, 819

Solid trees, 186187, 569

Sort-tile-recursive (STR), 349

Sorted array merge tree, see Size-tiered LSM-tree

Sorted arrays, 25, 171, 597

Sorted files, 980

Sorted String Table (SSTable), 988

“Sort heap”, 94

Sorting, 634, 676677, 969

algorithms, 634

arrangement of buffer pages and disk blocks, 971

combining techniques, 635

further techniques and faster randomized algorithms, 635636

large data sets, 970

by mindist, 351

by minmaxdist, 351

networks 634

packed sorting, 634635

policy, 351

range reduction, 634

Sort–merge paradigm, 884

SP, see Sequence pair

SP2 B-tree, see Self-tunable spatiotemporal B+-tree

Space bounds, 435, 512, 556, 602, 603, 1048

Space complexity, 9, 206

Space decomposition process, 256, 259

Space-driven

methods, 428

partitioning of methods, 429

structures, 359360

Space efficiency, 145, 234, 909

Space efficient computation of MEMs for two genomes, 926

Space filling curves (SFCs), 314315, 347, 429, 874, 884

corner cell traversals, 879

creation, 876877

curve pieces for query range, 877878

orderings, 315

range queries for SFC data structures, 876

recursively defined, 875

Space issues, 468

Space-ordering methods, 255

Space partitioning, binary tree representation of, 334

Space required by compressed trie, 456

Space required structures, 447449

Spanned organization, 977

Spanning

forest, 54, 578, 583, 584, 588

trees, 5354, 57, 582

Sparse

case, 120

direct solvers, 952

environments, 899

matrices, 27

matrix factorizations, 948

multislab lists, 432

segment, 598

symmetric factorization, 959

Sparsification, 582583, 1050

Sparsification-based approach, 1048; see also Persistence-based approach; Transformation-based approach

generalized half-space range searching, 10491050

Spatial 2D R-tree, 365

Spatial data, 871, 1013

mining, 263

models, 882

operations, 343

sets, 351

Spatial database systems, 883

Spatial data structures, 309, 425, 428; see also Kinetic data structures (KDS)

bootstrapping for 2-D diagonal corner and stabbing queries, 431432

bootstrapping for three-sided orthogonal 2-D range search, 432433

general orthogonal 2-D range search, 433434

linear-space spatial structures, 429

lower bounds for orthogonal range search, 434

R-trees, 429431

Spatial Hash-Join, 880881

Spatial index(ing), 365, 882

Spatial join(s), 343, 351353, 365, 872, 879, 882

advanced issues, 881882

algorithms, 880, 881

external algorithms, 879881

Spatial libraries, 883

JTS, GeoTools, and GEOS, 883884

LEDA and CGAL, 884

XXL, 884

Spatial partitioning hierarchies, 892

Spatial partition methods, 360

Spatial queries

with region quadtrees, 318320

types, 425, 428

Spatial searching, 872

Spatial search structures, 331

Spatial sorting, 329

Spatial–temporal queries, 364

Spatio-temporal data, 343, 359, 874

HR-trees, 368

indexing structures for continuously moving objects, 370373

MV3R-tree, 368370

overlapping linear quadtree, 360363

spatiotemporal indexing techniques, 360

3D R-tree, 363

2+3 R-tree, 368

Spatiotemporal databases (STB), 359

Spatiotemporal data structures (STDS), 359

Spatiotemporal indexing techniques, 360

Spatiotemporal joins, 370

Spatiotemporal operators, 363

Spatiotemporal query types, 367

Spatio-temporal self-adjusting R-tree (STAR-tree), 373

Specialized data structures, 359

Speedup of application, 742

Sphere-trees, 893

Spherical region query, 309, 310, 319320

Spherical shell-trees, 893

Spinlocks technique, 747

Spinning, 743, 747

Spiral storage, 127

Splay

analysis in virtual tree, 188189

sequence of rotations, 180

Splay trees, 78, 155, 158, 172, 179, 180181; see also B-tree

access and update operations, 182183

amortized time, 181182

analysis, 181

application to network flows, 190192

FIFO dynamic tree implementation, 193194

implementation without linking and cutting trees, 192193

linking and cutting trees, 185189

optimality, 184185

variants and top-down splaying, 195

Splice effects, 289

Splicing, 188, 578

Split

cases, 285

operation, 153, 158, 183, 395, 410, 576

policy, 346

split-find problem, 540

Splitting, 389

nodes, 1038

rule, 1036

threshold, 267

SQL database, 882, 968, 984

SQLite, 883

SR-tree, 1008, 1037

SSDs, see Solid state drives

SSSJ, see Scalable sweeping-based spatial join

SSTable, see Sorted String Table

SS-tree, 1008, 1037

SSV, see Swept sphere volume

SSV-trees, 893

Stabbing queries, 421, 426, 431432

Stability, 583

Stacks, 3132, 522, 640642, 672, 751

Standardized data models, 882

Standard range, 294, 295, 301, 1055

Standard template library (STL), 667, 679

additional components, 676

sorting, searching, and selection, 676677

Star-shaped drawings, 738

STAR-tree, see Spatio-temporal self-adjusting R-tree

Star-triangulation, 729

Start node, 477, 478

StartPointer, 774, 775

Static APASP

(2k–1)-approximate distance oracle, 613615

3-approximate distance oracle, 612613

computing approximate distance oracles, 616618

preliminaries, 613

randomized data-structure for, 611

Static array, 24

Static counting problem, 1047

Static data structure, 291, 633

Static extremal sets, 536537

Static finger theorem, 184

Static hash file, 980

Static optimality, 184

Static perfect hashing, 119120

Static pivoting, 960

Static point interval query, 373

Static queries, 890, 892

Static R-tree, 884

Static search tree, 546

Static structure, 433

Static type-2 problem, 1048

Statistical analysis of words, 918919

Status function, 319

STB, see Spatiotemporal databases

STDS, see Spatiotemporal data structures

Steiner points, 382, 383, 1024

Step-count(s), 57

analysis, 10

method, 5

Stepped merge method, see Size-tiered LSM-tree

Steps per execution (s/e), 6

STL, see Standard template library

Storage, 348

subsystem, 968

systems, 419

utilization, 360

Stout-Warren algorithm, 158

STR-tree, 360

STR, see Sort-tile-recursive

Stride of node, 770

String(s), 461, 924

containment, 471

data type, 699

“String art” algorithm, 866

String searching, 477

compact DAWG, 479, 486489

DAWG, 478, 479486

position heap, 479, 489494

preliminaries, 479

Strip-emptiness queries, 10161017

Strip tree data structure, 266

Structural operations, 279

Structural theorem, 225

Sub additivity, 199

Subcell, 312, 314, 317, 320, 1016, 1036

Sub-circuits, 833

Subgraph of graph, 53

Sub-hyperplanes, 337

Sub-logarithmic time per element by simple means, 628

combining, 630

packing keys, 629630

range reduction, 628629

Sub-quadratic space, 612

Subset enumerator, 18

Subset generation, 18

accounting method, 19

aggregate method, 19

potential method, 1920

problem definition, 1819

worst-case method, 19

Subset testing

dynamic set intersections and, 537538

extremal sets and, 535

static extremal sets, 536537

Substitution method, 1213

Subtrees, 35, 72, 90, 93, 151, 154, 156, 163, 223, 301, 319, 344345, 501, 547, 561, 571, 605, 688, 708, 711, 713, 715, 777, 926, 1055

Successor

search, 152

vertex, 49

Succinct dictionaries, 597

dynamic dictionary, 598599

FID, 598

indexable dictionary, 597598

Succinct representation of data structures

arrays, 607

bitvector, 596597

graph representations, 603

partial sums, 606

permutations and functions, 604606

succinct dictionaries, 597599

succinct structures for indexing, 603604

tree representations, 599603

Succinct structures for indexing, 603604

Suffix array(s), 461, 462, 463, 467, 603

advanced applications, 473

applications, 468

approximate pattern matching, 473474

construction algorithms, 463

Käräkkanen and Sanders’ algorithm, 467468

linear time construction algorithms, 463468

longest common substrings, 470471

lowest common ancestors, 472

maximal palindromes, 474

pattern matching, 468470

properties, 461463

string containment, 471

suffix-prefix overlaps, 471472

suffix links from lowest common ancestors, 473

text compression, 471

Suffix(es), 462, 523, 924

Suffix link, 462, 464, 465

Suffix tree(s), 461, 462, 463, 467, 603, 924

advanced applications, 473

applications, 468

approximate pattern matching, 473474

construction algorithms, 463, 464

generalized, 466

linear time construction algorithms, 463468

longest common substrings, 470471

lowest common ancestors, 472

maximal palindromes, 474

McCreight’s algorithm, 465466, 470

pattern matching, 468470

properties, 461463

string containment, 471

suffix-prefix overlaps, 471472

suffix arraysvs., 464

suffix links from lowest common ancestors, 473

text compression, 471

SUM operator, 245246

Super-element model, 957

Supercell, 312, 314

Supernodes, 62, 949950

Support count of itemset, 1003

Surface mapping, 861, 862

SWAN system, 704

Swapping pointers, 160

Sweeping, 380, 427, 515

distribution, 422

phases, 748

plane sweeping algorithm, 516

Sweep-line algorithm, 352, 423, 879, 880, 1021

Sweep-line order, 352, 1029

Swept sphere volume (SSV), 893

SWIM, failure-detection protocols, 986

Switch pointer, 788, 789

Symbolic Cholesky factor, 950

Symbolic elimination, see Symbolic factorization

Symbolic factorization, 950951, 957

Symbolic perturbation, 654

Symmetric Binary B-trees (SBB-trees), 157

Symmetric drawing, 728; see also Convex drawing; Visibility drawing

displaying axial symmetry, 730732

displaying dihedral symmetry, 732

displaying rotational symmetry, 729730

Symmetric matrix, 893, 946, 950

Symmetric min-max heap (SMMH), 98100

Symmetric pruning, 961

Synchronous traversal method, 353

“Syntactic” duplicates, 801, 802

T

Table-lookup method, 13

Tag value, 166

Tail estimates, 203204

“Tailor” layout system, 823

Tall cache assumption, 546, 556

Tanimoto distance, 941

Tanimoto similarity, 939940, 943

Target function, 1000

t-ary trees, Huffman algorithm for, 220

TB-tree, 360

TBT, see Twin binary tree

TCAMs, see Ternary content-addressable memories

TCG, see Transitive closure graph

Template method pattern, 683, 684, 689, 692

Template quadtrees, 907, 908

Template sets, 907

Temporal 1D R-tree, 365

Temporal index, 365

Terminal nodes, 496

Ternary content-addressable memories (TCAMs), 767, 795796

Tertiary storage, 234, 970

Test bit, 629, 630, 631

Tetrahedralizations, 1023

“Texels”, 862

Text, 477

compression, 471

index, 603

Texture mapping, 861862

Thematic attributes, 871, 873

Theoretical growth models, 806809

Theta notation (Θ), 11

Threaded binary trees

inorder traversal, 4142

threads, 41

Thread(s), 41, 709, 741

3-approximate distance oracle, 612613

3D Geometry Library (libP), 655

cache-oblivious kd-tree, 560561

cache-oblivious range tree, 561563

Three-dimensional lines, 368

3-D polygonal meshes, 861

Three-sided queries, 433, 562

layout, 562

query, 562563

structure, 562

Three-sided range search(ing), 433

Three dimensional graph drawing, 737

3D R-tree, 363

handling queries with open transaction times, 367368

performance analysis, 367

spatiotemporal queries using unified schema, 365367

TID, see Translation invariant data structure

TID concept, see Tuple identifier concept

Tiered vector, 607

Tiled array, 864, 865

Tile(s), 384, 819

creation, 820, 821822

curved, 823

deletion, 820

L-shaped, 823826

trapezoidal, 823

Tilings, 382383

Time bounds, 94, 491, 568, 582, 606, 1056

of finger search trees, 176

improvements to, 491494

logarithmic, 523

run–time bounds, 468

for updates and queries, 515

Time complexity, 3, 9, 54, 204, 224, 391, 541, 776, 836, 847, 949

Time-forward processing, 427

Time-Parameterized R*-tree (TPR*-tree), 371373

Timeslice query, 371

Timestamp query, 368

TMS, see Truth Maintenance System

Token, 750, 802

Tombstones, 988

Top-down

hierarchical methodology, 834

methods, 893

splaying, 195

traversal of suffix tree, 470

Topological

approach, 935

data, 872

Topological number(ing), 689, 734, 735, 736

Topological sorting, 5758

Topology trees, 567, 571, 582

applications, 573574

construction, 572

update, 573

updates, 572573

Toponym recognition, 269

Toponym resolution, 269

Top trees, 567, 574

representation and applications, 576577

updates, 575576

Total correspondence, 111112

Tournament trees, 46

loser trees, 48

winner trees, 47

TPIE system, see Transparent parallel I/O environment system

TPR*-tree, see Time-Parameterized R*-tree

Traditional indexing

schemas, 371

techniques, 360

Traditional metrics, 987

Traditional spatial data structures, 359

Traditional spatial indexes, 360

Trajectory indexing techniques, 359

Transaction-oriented recovery, 976

Transactional memory mechanism, 749

Transactional synchronization mechanisms, 748

Transaction management subsystem, 968

Transaction time, 359, 360, 367368

Transformation-based approach, 1046

dynamic counting problem, 10471048

dynamic reporting problem, 10461047

static counting problem, 1047

static type-2 problem, 1048

Transformed data structure, 1054

Transistor, 817, 818

Transition function, 745

Transitive closure, 589

updates in O(n2) time, 591

updates in O(n2 log n) time, 590

Transitive closure graph (TCG), 841

Transitively closed subgraphs, 956

Transitive reduction, 479, 961

Translational C-space obstacle (TCSO), see Minkowski sum

Translation invariant data structure (TID), 903, 912914

Translation table, 978

Transparent parallel I/O environment system (TPIE system), 423

Trapezoidal decomposition, see Trapezoidal map; Vertical decompositions

Trapezoidal maps, 10311032

Trapezoidal tiles, 823

Trashing, 391

Trawling, 813814

Treaps, 173174

Tree-depth, 462

TreeLayout algorithm, 711

TreeNode class, 39

Trees, 35, 49, 53, 151152, 686; see also Leftist trees

binary trees, 3739, 599

binary tree traversals, 3941

BSTs, 4244

cardinal trees, 601602

color problem, 514

compaction, 988

dynamic binary trees, 602603

heaps, 4446

height limited Huffman trees, 220222

Huffman trees, 216220

left child-right sibling representation, 37

membership, 579

merging, 335337

with minimum weighted path length, 215

nodes, 601

OAT problem, 224226

OBST, 222224

optimal lopsided trees, 226229

ordinal trees, 599601

parallel algorithms, 230231

rebalancing algorithm, 163

references primitives, 869

representations, 37, 599

threaded binary trees, 4142

tournament trees, 4648

tree-based data structures, 425

tree-based priority pools, 757

tree-push procedure, 193

type data structure, 825

updating, 345346

Treewise merging process, 175

Triangle inequality, 620, 941

Triangle mesh, 858

Triangulated graphs, 898, 954

Triangulations, 277, 288, 382383, 839, 1022

DT, 10221023

of point set, simple polygon, and polyhedron, 1024

polygons, 1023

polyhedra, 10231024

pseudo-triangulations, 10241025

Trickle-down process, 107, 108

Triconnected planar graph, 728

Tridiagonal matrix, 27

Trie(s), 390, 445, 769

1-bit tries, 769770

compressed, 452456

FSTs, 770772

height of trie, 447

implementations, 390391

inserting into, 449

keys with different length, 446447

patricia, 456458

prefix search and applications, 451452

removing element, 449451

representation, 449

searching, 446

space required and alternative node structures, 447449

trie-array implementation, 391

trie-based approaches for storing fingerprints, 943

trie-bst approach, 396

VST, 772774

Trivial labeling, 190

Trivial rebalancing scheme, 153

True color, 859

Truth Maintenance System (TMS), 507

Tuple identifier concept (TID concept), 979

Tuple space search, 795

Tutte’s duality, 839841

TV-tree, 1037

Twin binary tree (TBT), 833, 834, 841842, 849, 851

Twin heap, 111

Twin slot method, 975

2-3-trees, 179, 180, 389

2-3-4 tree, 234

Two-cuttable theorem, 415

Two-dimension (2D), 8

approaches, 935

arrays, 8, 26, 862

bootstrapping for 2-D diagonal corner,, 431432

classification scheme, 790, 791

classifier, 786

compaction, 819

data set, 353

data types, 884

homothetic range search, 435

intersection tests, 900901

orthogonal range queries, 428

points, 368

space, 251, 371

topology trees, 574, 582

2D-range search problem, 302304

2D Geometry Library (libP), 655

2D orthogonal range searching, 560

2-edge connectivity, 574

Two-handed emulation technique, 754

Two-level hash function, 597

Two-pass pairing, 93

Two-step approach, 628

Two dimensional array of pixels, 320

(2k–1)-approximate distance oracle, 613

reporting distance with stretch at-most (2k–1), 614615

size of (2k–1)-approximate distance oracle, 615

Type-2 counting problem, 1044

(t, ε) -AVD decomposition, 1038, 1039

U

UML, see Unified modelling language

Unary encoding, 800

Uncertain points, 1050

Uncompressed region quadtrees, 317

Undirected graph(s), 50, 51, 53, 581

clustering, 582

randomization, 583584

sparsification, 582583

techniques for, 582

Unified algorithm for group queries, 319

Unified modelling language (UML), 707

Unified schema, spatiotemporal query using, 365366

Uniform distribution, 199, 338, 973, 1034

Uniform grid, 252, 253, 259, 260

Uniform hashing assumption, 122fn

Union

of images, 321

operation, 868869

UnionBit Tree, 943

Union-copy problem, 540

Union tree, 943

Unique representation

property, 531

remarks on, 533

of sets, 530, 532

Unit partition, 937, 938

UnitWeightedTopologicalNumbering, 689

Universal hashing, 119

Unmatched clusters, 572

Unordered BDD, 496

Unordered dictionaries, 151

Unreliability, 679

Unrooted tree, 35

Unspanned organization, 977

Unusual words, 917

detection, 919923

statistical analysis of words, 918919

subtrees rooted at solid gray nodes, 921

Up buffer, 557, 558, 559

Update(s), 551, 553, 561

on graph, 581

in O(log2n) time, 587588

in O(log4n) time, 589

in O(n2.5 √Clog n) time, 592

operations, 182183, 345, 581

tradeoffs, 593

Upper bound theorem, 1014

Upper convex hull, 663

Upper envelope, 380, 381, 1014, 1049

Upper hull, 1018, 1019

Upper triangular matrix, 27, 945

Upstream sequence, 918

Upward star-shaped polytopes, 738

User-defined displays, 704

User interface, 867, 967

V

Vacant tiles, 819, 822, 823, 824

Valence of atom, 936

Valid interval, 517, 518

Valid labeling, 190

Valid time, 359

Value of flow, 190

van derWaal forces, 323

Van Emde Boaz layout, 546, 547, 560, 561

range query, 547548

search, 547

Vapnik and Chervonenkis dimension (VC-dimension), 398, 399

Variable-Increment Counting Bloom Filter (VI-CBF), 146

Variable-length record, 968, 977

Variable-stride trie (VST), 772774

Variable length (VL), 361, 977

encoding scheme, 800

records, 979

strings, 118

Variable length signatures (VBF), 146

Variable ordering for BDDs, 502503

Variant(s), 425426, 428, 819

edge quadtrees, 906907

line quadtrees, 906

of quadtrees, 905

region quadtrees, 905906

of splay trees, 195

template quadtrees, 907

Variety, 983

VBF, see Variable length signatures

VC-dimension, see Vapnik and Chervonenkis dimension

Vector graphics, 904, 905

Velocity vector, 371, 983

Verification techniques, 746

Version list, 516, 517, 518

Vertex, 49, 576, 859

attributes, 278, 280, 281

elimination process, 957

hub pair, 897

resolution, 723

split, 279280, 284287

Vertex, normal, and face lists, 863

Vertical combination, 719

Vertical decompositions, 1016

Vertical inversions of polygon, 825

Vertical O-tree, 843844

Vertical ray shooting, 1028

Vertical slabs, 422, 432, 513, 1029

Vertices, 581, 611, 1014

Vertices, 862

Very Large Scale Integration (VLSI), 817819

combinations and complexities of representations, 834835

design process, 507

design stages, 818

example of extra constraints, 854

floorplan representation in, 833

graph based representations, 837844

logic design, 495

motivation of representation, 834

placement based representations, 844850

rectilinear shape handling, 851853

relationships of representations, 851

slicing, mosaic, LB compact, and general floorplans, 835837, 838

statement of floorplanning problem, 833834

VI-CBF, see Variable-Increment Counting Bloom Filter

Violations of CV property, 822

VIPS, 701702

Virtual environments, 889

Virtual hashing, 127

Virtual quadtrees, 905, 907

compact quadtrees, 908909

FQT, 909910

Virtual trees, 186

splay analysis in, 188189

splay in, 188

Visibility, 384385

representation, 732

Visibility drawing, 732; see also Convex drawing; Symmetric drawing

bar visibility algorithm, 734735

bar visibility representations and layered drawings, 735736

bar visibility representations for orthogonal drawings, 736737

planar st-graphs, 733734

Visibility orderings, 332

binary tree representation of space partitioning, 334

intra-object visibility, 333

ordering of polygons, 334

total ordering of collection of objects, 332333

as tree traversal, 333

visibility ordering as tree traversal, 333

Visualization, 657

GeoWin, 358

GraphWin, 657658

systems, 700

VL, see Variable length

VLSI, see Very Large Scale Integration

Voronoi-based marching algorithm, 890

implementation and application, 892

local walk, 891892

polytope representation, 891

Voronoi cell, 891, 1020, 1032, 1033

Voronoi diagrams, 277, 288, 385, 402, 1002, 1013, 1020, 1021, 10321033

complexity, 1021

construction, 10211022

variations, 1022

Voronoi edges, 1021

Voronoi regions, 890, 891, 1002

VST, see Variable-stride trie

W

Wait-freedom, 744

Wait-free operation, 744

Walkthroughs, 889

Warm-up filter, 146

Warshall-Floyd algorithm, 64

Wavelet trees, fast rank and select operations using, 929931

WBA, see Worst-case bounding-box area ratio

WBLTs, see Weight-biased leftist trees

WBP, see Worst-case bounding-box squared perimeter ratio

Weak version condition, 369

Web algorithmics, properties of, 809

average path length, 810

crawling and trawling, 813814

emergence of giant components, 811

generating function framework, 809810

search on web graphs, 811813

Web as dynamic graph

experimental observations, 806

properties of web graphs and web algorithmics, 809814

theoretical growth models, 806809

web model building techniques, 805806

Web crawl, 805, 806

Web graph(s), 806

average path length, 810

crawling and trawling, 813814

emergence of giant components, 811

generating function framework, 809810

properties, 809814

search on, 811813

Web information retrieval

data structures in, 799

finding near-duplicate documents, 801802

fingerprints, 801

inverted indices, 799801

Web model building techniques, 805

Web search engines, 799

Wedge cut canonical set, 416

Weight

function, 230

matrix, 51

of node, 156, 165

Weight-balanced B-trees, 426, 429, 431, 435

Weight-balanced trees, 156157, 389, 390

Weight-balanced trees, 426

Weight-biased leftist trees (WBLTs), 74

maxWBLT operations, 75

Weighted graph, 50, 59, 694

connected weighted graph for MST algorithm, 60

representation, 51, 52

undirected, 611

Weighted path length, 215

Well-separatedness criteria, 323324

“Where-am-I” queries, 970

Whole genomes comparison, 923

basic definitions, 924925

collinear chain of nonoverlapping anchors, 923, 924

computation of multiMEMs, 925926

space efficient computation of MEMs for two genomes, 926

three genomes represented as horizontal lines, 923

Widgets, 16, 17

Window data type, 657

Window Library (libW), 655

Window query, see Range query

Winged-edge

approach, 863864

data structure, 280281

Winged-edge data structure, 266

Winner trees, 47

Witness points, 892

WKT, 882

Word count, 659

Word processor, 452

Word RAM

algorithms, 10451046

model, 530

Word size impact, 137138

“Working-set” theorem, 94, 185

Workload(s), 370, 372, 987

distribution algorithm, 753

NoSQL database, 987

Work sharing, classes of algorithm, 753

Work stealing, classes of algorithm, 753

World Wide Web, 269, 805

Worst-and expected-case optimal point location, 1032

Worst-case bounding-box area ratio (WBA), 877

Worst-case bounding-box squared perimeter ratio (WBP), 877

Worst-case efficient exponential search trees, 634

Worst-case method

maintenance contract, 15

McWidget company, 17

subset generation, 19

Worst-case search time, 122

Write amplification, 987, 988, 989, 992

X

x-monotone, 1023

polygon triangulation, 1024

subdivision, 10291030

x-nodes, 1031

XOR filter, 935, 941942

X-tree, 1037

XXL, see eXtensible and fleXible Library

Y

y-nodes, 1031

Z

ZBDD, see Zero-suppressed BDD (ZDD)

z-buffers, 340

z-curve, 875

ZDD, see Zero-suppressed BDD

0-edge, 496

Zero-suppressed BDD (ZDD), 495, 504506

0-terminal, 496

Zig-zig step, 180, 195

Zig step, 180

Ziv-Lempel compression, 471

Zooming, 873

Z-order curve, 347, 352

z-score, 918, 919

Z-space filling curve, see Morton ordering

z-values, 334, 866

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.116.102