Arrays, Listen, ja sogar Stapel und Schlangen, speichern „Mengen“ von Elementen. Bei diesen „Mengen“ handelt es sich aber nicht um Mengen im streng mathematischen Sinne, denn bekanntlich darf in einer Menge jedes Element nur einmal enthalten sein.[28] Vielmehr speichern Arrays und Listen Multimengen (engl. multisets), d. h., in diesen Ansammlungen darf ein Element durchaus mehrfach vorkommen.
Zudem unterstützen Arrays und Listen die wichtigsten Mengenoperationen nur schlecht. Während das Einfügen eines neuen Elementes noch recht einfach ist, muss zur Suche schon eine Methode aufgerufen werden, die intern eine lineare Struktur durchsucht. Schnitt, Vereinigung oder Differenz von in Arrays oder Listen gespeicherten (Multi-)Mengen dagegen sind i. Allg. nur mit relativ großem Zeitaufwand zu implementieren.
Während in Arrays und Listen die Elemente in einer linearen Reihenfolge gespeichert sind, ist unsere Vorstellung von einer Menge eine Ansammlung „frei flottierender“ Elemente ohne innere Struktur. Abbildung 2.24 zeigt eine Menge von 7 Elementen.
Was wir also benötigen, ist ein Datentyp Menge (engl. set), der das mathematische Konzept einer Menge realisiert:
Für Ansammlungen von Elementen, die diesen Forderungen genügen, bietet LEDA die Klasse set an.