1.Leicht
Was ist der Füllgrad (Load Factor) einer Hashtabelle?
- ADie Anzahl der Buckets geteilt durch die durchschnittliche Länge der gespeicherten Schlüssel
- BDie Zeit, um die Tabelle von der Festplatte zu laden
- CDie Anzahl der bisherigen Kollisionen
- DDie Anzahl gespeicherter Elemente geteilt durch die Anzahl der Buckets
2.Leicht
Welche Struktur wird typischerweise zur Implementierung einer Prioritätswarteschlange verwendet?
- AEin Stack
- BEin Heap
- CEine ungeordnete einfach verkettete Liste
- DEine Zeichenkette
3.Leicht
Was kennzeichnet einen Binärbaum?
- AJeder Knoten hat genau zwei Kindknoten
- BJeder Knoten hat höchstens zwei Kindknoten
- CDer Baum hat genau zwei Ebenen
- DJeder Knoten speichert eine Binärzahl
4.Mittel
Was kostet das Einfügen eines Elements in der Mitte eines Arrays mit n Elementen?
- AO(log n), wegen der binären Suche
- BO(n²), weil jedes Element n-mal verschoben wird
- CO(n), weil die nachfolgenden Elemente verschoben werden müssen
- DO(1), weil der Index bekannt ist
5.Mittel
Du hast eine Referenz auf einen Knoten in der Mitte einer Liste. In welcher Liste kannst du ihn in O(1) entfernen?
- AIn einer einfach verketteten Liste
- BIn einer doppelt verketteten Liste
- CIn einem sortierten Array
- DIn einem dynamischen Array
6.Mittel
Warum ist das Durchlaufen eines Arrays in der Praxis oft viel schneller als das einer gleich langen verketteten Liste?
- ADas Durchlaufen eines Arrays ist insgesamt O(1), das einer verketteten Liste O(n)
- BArrays brauchen weniger Instruktionen zum Vergleichen von Werten
- CArray-Elemente liegen zusammenhängend und nutzen daher den CPU-Cache gut aus
- DVerkettete Listen speichern Elemente immer auf der Festplatte
7.Schwer
Wie hoch ist unter der Annahme des einfachen gleichverteilten Hashings die erwartete Suchzeit in einer Hashtabelle mit Chaining, n Schlüsseln und m Buckets?
- AO(log n)
- BO(m)
- CO(n)
- DO(1 + α), wobei α = n / m
8.Schwer
Ein Segmentbaum (Segment Tree) wird typischerweise verwendet, um:
- AEinen Stack zu implementieren
- BDie Kanten eines Graphen zu speichern
- CBereichsabfragen (z. B. Bereichssummen) und Aktualisierungen in O(log n) zu beantworten
- DZeichenketten alphabetisch zu sortieren, indem jedes Präfix in einem eigenen Baumknoten gespeichert wird
Lösungsschlüssel
- 1. D · Die Anzahl gespeicherter Elemente geteilt durch die Anzahl der Buckets
- 2. B · Ein Heap
- 3. B · Jeder Knoten hat höchstens zwei Kindknoten
- 4. C · O(n), weil die nachfolgenden Elemente verschoben werden müssen
- 5. B · In einer doppelt verketteten Liste
- 6. C · Array-Elemente liegen zusammenhängend und nutzen daher den CPU-Cache gut aus
- 7. D · O(1 + α), wobei α = n / m
- 8. C · Bereichsabfragen (z. B. Bereichssummen) und Aktualisierungen in O(log n) zu beantworten
Vollständige Schritt-für-Schritt-Lösungen: Übe dieses Thema auf examproblems.com.