LEDA, for Library of Efficient Data types and Algorithms, is perhaps the best single resource available to support combinatorial computing. It has been under development since 1988 by a group at Max-Planck-Instutut in Saarbrücken, Germany, including Kurt Mehlhorn, Stefan Näher, Stefan Schirra, Christian Uhrig, and Christoph Burnikel. LEDA is unique because of (1) the algorithmic sophistication of its developers and (2) the level of continuity and resources invested in the project.
LEDA is implemented in C++ using templates, and it should compile on most new compilers, but not some old ones. LEDA is available by anonymous ftp from ftp.mpi-sb.mpg.de in directory /pub/LEDA, or at http://www.mpi-sb.mpg.de/LEDA/leda.html. The distribution contains all sources, installation instructions, and a substantial users manual [NU95]. An active Usenet newsgroup comp.lang.c++.leda is inhabited by users of LEDA. A good article on LEDA is available [MN95], and a book is promised soon. LEDA is not in the public domain, but it can be used freely for research and teaching. Commerical licenses are also available.
What LEDA offers is a complete collection of well-implemented data structures and types. Particularly useful is the graph type, which supports all the basic operations one needs in an intelligent way, although this generality comes at some cost in size and speed over handcrafted implementations. A small but useful library of graph algorithms is included, which illustrates how cleanly and concisely these algorithms can be implemented using the LEDA data types. Good implementations of the most important data structures supporting such common data types as dictionaries and priority queues are provided. There are also algorithms and data structures for computational geometry in the plane, including some support for X-windows.