Kapitel 2. Einfache Datentypen und einfache Containertypen
Inhaltsverzeichnis
- 2.1. Zeichenketten (Klasse string)
- 2.1.1. Weitere Operationen auf Strings
- 2.1.2. Das LEDA-Regelwerk, 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 item-basierten Typen und Item-Typen
- 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.