One of the major differences between combinatorial computing and other areas of computing such as statistics, numerical analysis and linear programming is the use of complex data types. Whilst the built-in types, such as integers, reals, vectors, and matrices, usually suffice in the other areas, combinatorial computing relies heavily on types like stacks, queues, dictionaries, sequences, sorted sequences, priority queues, graphs, points, segments, … In the fall of 1988, we started a project (called LEDA for Library of Efficient Data types and Algorithms) to build a small, but growing library of data types and algorithms in a form which allows them to be used by non-experts. We hope that the system will narrow the gap between algorithms research, teaching, and implementation. The main features of LEDA are:
1) A clear separation between (abstract) data types and the data structures used to implement them. This distinction is frequently not made in the combinatorial algorithms literature, but is crucial for a library.
2) Generic data types: Most of the data types in LEDA have type parameters. For example, a dictionary has a key type K and an information type I and a specific dictionary type is obtained by setting, say, K to int and I to real.
3) LEDA is extendible: Users can include own data types either by implementing data structures from scratch in or by combining already existing LEDA data types.
4) Ease of use: All data types and algorithms are precompiled modules which can be linked with application programs.
This manual contains the specifications of all data types and algorithms currently available in LEDA. Users should be familiar with the programming language (see [S86] or [L89]). The main concepts and some implementation details of LEDA are described in [MN89]. The manual is structured as follows: In chapter one, which is a prerequisite for all other chapters, we discuss the basic concepts and notations used in LEDA. The other chapters define the data types and algorithms available in LEDA and give examples of their use. These chapters can be consulted independently from one another.
10cm