# Gobo Eiffel Structure Library

The Gobo Eiffel Structure Library is a portable Eiffel class library covering data structures and algorithms. When this library has been developed, there was no data structure library standard, and no portable library was publicly available. Each Eiffel compiler provides its own data structure library, but none of them is portable (see portability issues). This library has hence been developed as a foundation for other portable libraries provided in the Gobo Eiffel Project. The Gobo Eiffel Structure Library contains the classic containers needed in everyday programming, such as lists, stacks or tables, and provides different implementations such as linked, bilinked, arrayed, multiarrayed or hashed. More data structures may be added in the future if there is a need for them. There is nothing really new in this library. Most of the ideas come from other existing data structure libraries.

This documentation is structured as follows:

> Terminology
>   Naming conventions followed throughout this library.
> General Abstractions
>   Abstract properties of data structures [cluster `container`].
> Traversable Containers
>   Data structure traversal mechanism [cluster `container`].
> Sortable Containers
>   Algorithms for sorting items in containers [cluster `sort`].
> Lists
>   Various implementations of lists [cluster `list`].
> Tables
>   Containers whose items are accessed by keys [cluster `table`].
> Sets
>   Containers containing at most one occurrence of each item [cluster `set`].
> Dispensers
>   Stacks (LIFO) and queues (FIFO) [cluster `dispenser`].
> EiffelBase Containers
>   Main EiffelBase containers implemented with Gobo classes [cluster `EiffelBase`].
> Flat-short Forms
>   Flat-short forms of the Gobo Eiffel Structure Library classes.
> See Also
>   Bibliographical references, related resources and acknowledgments.
> Downloading Instructions
>   License agreement and downloading instructions.