Datenstrukturen 3 Abstrakte Datentypen Ziel Was bedeutet “effizient

Werbung
1
2
3 Abstrakte Datentypen
Ziel
Information “effizient” zu verwalten!
Kapitel 3:
Was bedeutet “effizient”?
Datenstrukturen
Quantitative Ziele
Zugriffszeit
schnelles Einfügen, Verändern, Löschen, ... (d.i. “Bearbeiten” im
weitesten Sinn) der Daten
Speicherplatz
kompaktes Speichern der Information
Qualitative Ziele
Unterstützung spezifischer Zugriffsarten auf Eigenschaften bzw.
Charakteristiken der Daten
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
3
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
4
Datenstrukturen
Überblick
Erfüllung dieser Ziele führte zur Entwicklung von
Alle bekannten Datenorganisationsformen bauen auf
einigen wenigen einfachen Techniken auf
Listen
Datenstrukturen
Stack, Queue
Datenstrukturen dienen zur Verwaltung großer Mengen
ähnlicher Objekte
Bäume
Binärer Baum, B+-Baum, Priority queue
Unterschiedliche Datenstrukturen dienen zur Verwaltung
unterschiedlicher Objekte, die durch unterschiedliche
Eigenschaften charakterisiert sind, daraus folgt:
Vektoren
Hash Tabelle, Dictionary
Für unterschiedliche Problemstellungen unterschiedliche
Datenstrukturen!
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
5
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
6
Liste
Eine Liste (list) dient zur Verwaltung einer beliebig
Anzahl von Elementen eines einheitlichen Typs.
Stack (Keller)
Die Elemente werden in einer Sequenz angeordnet, die sich
(meist) aus der Eintragereihenfolge ableiten lässt
(ungeordnet).
Der Aufwand des Zugriffes auf ein einzelnes Element ist
abhängig von der Position in der Sequenz.
Elemente werden nach dem LIFO (last-in, first-out) Prinzip
verwaltet
Anwendungen: Kellerautomaten, Speicherverwaltung,
Evaluationsordnung
Queue (Schlange)
Elemente werden nach dem FIFO (first-in, first-out) Prinzip
verwaltet
Anwendungen: Warteschlangen, Bufferverwaltung,
Prozessmanagement, Stoffwechsel
...
Kopf
Spezielle Listen
Ende
Anwendungen
sequentielle Datenbestände, große Datenmengen, externe
Speicherung
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
1
7
8
Baum
Der Baum (tree) stellt eine Generalisierung der Liste
auf eine 2-dimensionale Datenstruktur dar.
besteht aus Knoten und Kanten
Exponentieller Zusammenhang zwischen Tiefe des Baumes
und Anzahl der Knoten
Anwendungen: allgemeine Schlüsselverwaltung, Haupt- und
Externspeichermanagement
Spezielle Bäume
Binärer Baum
Knoten haben max. 2 Nachfolger, Hauptspeicherverwaltung
Binärer Suchbaum
geordneter binärer Baum, Werteverwaltung
Heap
ungeordneter binärer Baum, Warteschlangen
B+-Baum
balanzierter Mehrwegbaum, Externspeicherverwaltung,
Datenbanksysteme
Trie
Prefix-Baum, Zeichenkettenverwaltung, Wörterbücher
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
9
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
10
Vektor
Ein Vektor (vector, Feld) verwaltet eine fix
vorgegebene Anzahl von Elementen eines
einheitlichen Typs.
Hash Tabelle
Zugriff auf ein Element über einen ganzzahligen Index (die
Position im Vektor)
Aufwand des Zugriffes für alle Elemente konstant
x0
x1
x2
…
xn-1
Spezielle Vektoren
Der Index eines Elements wird aus dem Element selbst
berechnet (über eine Hashfunktion h(x))
Anwendungen: Verwaltung von Tabellen (Compilertables,
Namenslisten, …), bedingt Externspeicher-mangement
Dictionary
Der Index eines Elementes kann beliebigen Typ haben und
wird mit dem Element gemeinsam gespeichert
Anwendungen: Verwaltung komplexer (zusammengesetzter)
Informationen, Zuordnungslisten
xn
Anwendungen
Verwaltung fix vorgegebener Anreihungen, Strings, math.
Konzepte
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
11
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
12
Vergleichskriterien
Dynamik
Datenverwaltung
Informeller Vergleich
Datenstruktur Stärken
Schwächen
Liste
dynamisch
beliebige Datenmenge
klares Modell
geringer Speicherplatz
linearer Aufwand der
Operationen
simples Modell
Baum
dynamisch
beliebige Datenmenge
logarithmischer Aufwand der
Operationen
Balanzierungsalgorithmen
aufwendigerer
Speicherplatzverbrauch
komplexes Modell
Vektor
dynamisch
direkter Elementzugriff
konstanter Aufwand der
Operationen
oft fixe Datenmenge
eingeschränkte
Operationen
Einfügen, Löschen
Datenmenge
beliebige oder fix Anzahl von Elementen
Aufwand
Laufzeit der Operationen
Speicherplatzverbrauch
Modell
Operationenumfang
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
2
13
Was nehmen wir mit?
Datenorganisation
Effizienz
Quantität - Qualität
Datenstrukturen
Typen
Vergleichskriterien
VO Grundlegende Algorithmen und Datenstrukturen
E. Schikuta
3
Herunterladen