Lecture 8 Flashcards
(8 cards)
Welcher Trick vereinfacht Verwaltung und Spezialfälle einer DLL?
Ein Dummy-Element h ohne Nutzdaten, dessen next und prev initial auf sich selbst zeigen.
Formuliere die zentrale Klasseninvariante einer DLL mit Dummy.
Für jedes List-Objekt gilt: next->prev == prev->next == this.
Warum bringt ein extra Zeiger aufs letzte Element einer SList Vorteil?
Damit wird pushBack in O(1) möglich (kein Durchlaufen der Liste).
Welche Hauptgründe nennt die Vorlesung für spezialisierte Stack/Queue-Typen, obwohl Listen O(1) bieten?
1) Lesbarere, fehlerärmere Programme; 2) schlankere Implementierungen (platz-/cachegünstig); 3) bessere Sekundärspeicher-Eigenschaften.
Wie wird die Größe der zirkulären Queue berechnet?
size() = (t – h + n + 1) % (n+1)
Warum hat das Array n+1 statt n Einträge bei Maximalgröße n?
Um leere und volle Zustände eindeutig mittels h/t unterscheiden zu können (immer ein Feld Reserve).
Welche Praxis-Nachteile hätte eine sortierte Liste im Vergleich zum Array?
Kein Cache-freundlicher Speicher, sequentielle Suche, unvorteilhaft bei Festplattenzugriffen.
Wichtigstes Take-away dieser Vorlesung?
Wahl der passenden Sequenz-Struktur (Feld, DLL, SLL, Stack, Queue, Deque) beeinflusst Laufzeit & Speicher drastisch;