Abstract

In this tutorial, we describe in detail some fundamental data structures and operations, and we discuss the techniques and arguments involved. Our intention is to provide the reader both with a toolbox of data structures, serving as building blocks for algorithms, and some knowledge to build his own problem-specific data structures and algorithms. We present data structures and operations for the dictionary problem with and without access probabilities, for priority queues, and for the set union problem. The topics we discuss include linear lists, skip lists, red-black trees, finger search trees, the move-to-front heuristic for linear lists, the move-to-root heuristic for binary trees, splay trees, elementary hashing, pairing heaps, binomial queues, relaxed heaps, path-length reduction techniques for set union structures, amortization, and persistence. Since we emphasize detailed explanations of concepts, we necessarily do not cover many of the basic issues found in almost any textbook on algorithms and data structures. We do not discuss sorting, multidimensional keys, keys in a bounded universe, implicit data structures, external storage structures, dynamization techniques for static structures, and the design and analysis of algorithms in general; the latter is treated in a different chapter of this volume.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call