Kapitel 2. Einfache Datentypen und einfache Containertypen

Inhaltsverzeichnis

2.1. Zeichenketten (Klasse string)
2.1.1. Die LEDA-Regeln, Handle-Typen und die Klassifizierung der LEDA-Typen
2.2. Felder
2.2.1. Eindimensionale Felder (Klasse array)
2.2.2. Zweidimensionale Felder (Klasse array2)
2.2.3. Zeitkomplexität, Platzkomplexität und die O-Notation
2.3. Lineare Listen (Klasse list)
2.3.1. Grundlegende Operationen auf Listen
2.3.2. Listen und das Item-Container-Konzept
2.3.3. Listen verändern und in Listen suchen
2.3.4. Listen sortieren
2.3.5. Benutzerdefinierte Typparameter
2.3.6. Kopieren und Vergleichen von strukturierten Typen und Items
2.3.7. Weitere Informationen und Tipps
2.3.8. Einfach verkettete Listen (Klasse slist)
2.4. Stapel
2.4.1. Stapel mit unbeschränkter Elementanzahl (Klasse stack)
2.4.2. Stapel mit beschränkter Elementanzahl (Klasse b_stack)
2.5. Zufallszahlen (Klasse random_source)
2.5.1. Der ganzzahlige Modus
2.5.2. Der Bit-Modus
2.6. Zufallsvariablen
2.6.1. Statische Zufallsvariablen (Klasse random_variate)
2.6.2. Dynamische Zufallsvariablen (Klasse dynamic_random_variate)
2.7. Schlangen
2.7.1. Schlangen mit unbeschränkter Elementanzahl (Klasse queue)
2.7.2. Schlangen mit beschränkter Elementanzahl (Klasse b_queue)
2.8. Mengen (Klasse set)
2.8.1. Elemente einfügen und Test auf Enthaltensein
2.8.2. Vereinigung, Schnitt und Differenz von Mengen
2.8.3. Linear geordnete Typen
2.9. Mengen von ganzen Zahlen
2.9.1. Wenn man Minimum und Maximum im Voraus kennt (Klasse int_set)
2.9.2. Wenn Minimum oder Maximum unbekannt sind (Klasse d_int_set)
2.10. array, list, stack, queue, set und d_int_set im Vergleich
2.11. Nützliche Kleinigkeiten
2.11.1. Paare, Tripel und Quadrupel (Klassen two_tuple, three_tuple, four_tuple)
2.11.2. Mit Verzeichnissen und Dateien umgehen
2.11.3. Datumsangaben (Klasse date)
2.11.4. Effiziente Speicherverwaltung für eigene Typen
2.11.5. Einige nützliche Funktionen
2.12. Was wir nicht beschrieben haben

Dieses Kapitel beschreibt die Basisdatentypen von LEDA. Nahezu jedes LEDA-Programm benutzt mindestens einen dieser Typen. Sie gliedern sich in einfache Datentypen und einfache Containertypen.

Einfache Datentypen heißen so, weil zu ihrer Implementierung keine anspruchsvolle Datenstruktur und kein ausgeklügelter Algorithmus notwendig ist. Beispiele hierfür sind Typen zum Verwalten von Zeichenketten oder zum Erzeugen von Zufallszahlen.

Einfache Containertypen speichern Ansammlungen von Objekten. Beispiele hierfür sind Arrays und lineare Listen. Im Gegensatz zu assoziativen Containertypen speichern sie aber zu den einzelnen Objekten keine zusätzliche Information, wie dies etwa bei Wörterbüchern geschieht; dort ist zu jedem Objekt (das dort Schlüssel genannt wird) ein Wert assoziiert.