Datenstrukturen

Data Structures

Informatik Klasse 11 20 Aufgaben
DatenstrukturenAlgorithmen

Jenseits des Arrays gibt es dynamische Strukturen, die mit den Daten wachsen: die verkettete Liste, der Stapel (LIFO), die Schlange (FIFO) und der Binärbaum. Die bayerische Implementierung nutzt das Kompositum-Muster — Knoten und Abschluss teilen eine Oberklasse, Operationen wandern polymorph durch die Struktur, Bäume werden rekursiv durchlaufen. Die tragende Auswahlfrage: Welche Struktur passt zu welchem Zugriffsmuster — Index-Zugriff (Array), nur oben (Stapel), vorn entnehmen (Schlange), sortiert suchen (Suchbaum)?

Leicht
Multiple Choice #1 20s ▶ Testen

Eine Datenstruktur sieht im Speicher so aus: [12 | •] → [7 | •] → [30 | null]. Jedes Element traegt einen Wert und einen Verweis. Welche Struktur ist das?

  • ● eine verkettete Liste
  • ○ ein Array
  • ○ ein Binaerbaum
In einer verketteten Liste besteht jeder Knoten aus Datenteil und Verweis auf den naechsten Knoten; der letzte verweist auf null. Ein Array liegt am Stueck im Speicher ohne Verweise, ein Binaerbaum haette bis zu zwei Verweise pro Knoten.
Lückentext #2 15s ▶ Testen

Bei einem Stapel (Stack) gilt das ___-Prinzip: Das zuletzt eingefuegte Element wird zuerst entnommen.

✓ Antwort: LIFO
LIFO = Last In, First Out. Wie bei einem Buecherstapel: Man legt oben drauf (push) und nimmt oben weg (pop). Anwendungen: Funktionsaufrufe, Klammerung pruefen, Undo-Operationen.
Wahr / Falsch #3 15s ▶ Testen

In eine leere Warteschlange (Queue) werden nacheinander 4, 7 und 9 eingefuegt. Beim ersten Entnehmen erhaelt man die 4.

✓ Wahr
Richtig. Eine Queue arbeitet nach dem FIFO-Prinzip (First In, First Out) — die zuerst eingefuegte 4 wird zuerst entnommen. Elemente kommen hinten dazu (enqueue) und vorne heraus (dequeue).
Multiple Choice #4 15s ▶ Testen

Welche zwei grundlegenden Operationen definieren einen Stapel (Stack)?

  • ● push und pop
  • ○ enqueue und dequeue
  • ○ insert und delete
push legt ein Element oben auf den Stapel, pop entfernt das oberste Element. Oft gibt es zusaetzlich peek (oberstes Element ansehen ohne zu entfernen) und isEmpty.
Lückentext #5 15s ▶ Testen

Ein Binaerbaum ist ein Baum, bei dem jeder Knoten hoechstens ___ Kindknoten hat.

✓ Antwort: zwei
In einem Binaerbaum hat jeder Knoten maximal zwei Kinder: ein linkes und ein rechtes Kind. Binaerbaeume sind die Grundlage fuer binaere Suchbaeume, Heaps und viele weitere Datenstrukturen.
Multiple Choice #6 15s ▶ Testen

In einem Baum hat der Knoten 8 die Kinder 3 und 10; der Knoten 3 hat das Kind 1. Welcher Knoten ist die Wurzel?

  • ● 8
  • ○ 1
  • ○ 10
Die Wurzel ist der oberste Knoten — der einzige ohne Elternknoten. Das ist hier die 8. Die 1 ist ein Blatt (Knoten ohne Kinder), die 10 ein Kind der Wurzel. Der groesste Wert spielt keine Rolle.
Zahleneingabe #7 20s ▶ Testen

Ein vollstaendiger Binaerbaum hat 3 Ebenen (Wurzel = Ebene 1). Wie viele Knoten hat er insgesamt?

✓ Antwort: 7
Ebene 1: 1 Knoten (Wurzel), Ebene 2: 2 Knoten, Ebene 3: 4 Knoten. Gesamt: 1 + 2 + 4 = 7. Allgemein hat ein vollstaendiger Binaerbaum mit h Ebenen 2^h - 1 Knoten.
Lückentext #8 15s ▶ Testen

Eine Datenstruktur, bei der Elemente hinten angefuegt und vorne entnommen werden, heisst ___ (englischer Fachbegriff).

✓ Antwort: Queue
Eine Queue (Warteschlange) arbeitet nach dem FIFO-Prinzip. Typische Anwendungen: Druckerwarteschlange, Breitensuche in Graphen, Pufferung von Nachrichten.
Lückentext #9 15s ▶ Testen

Knoten in einem Baum, die keine Kinder haben, werden als ___ bezeichnet.

✓ Antwort: Blaetter
Blaetter (Blattknoten) sind die Endpunkte eines Baumes. Sie haben keine Kindknoten. Innere Knoten hingegen haben mindestens ein Kind.
Mittel
Sortieren #1 25s ▶ Testen

Ordne die Schritte zum Einfuegen eines Elements am Anfang einer verketteten Liste in die richtige Reihenfolge:

✓ Antwort: Neuen Knoten erstellen, Verweis des neuen Knotens auf den bisherigen Kopf setzen, Kopf-Referenz auf den neuen Knoten umsetzen
Die Reihenfolge ist wichtig: Zuerst den neuen Knoten anlegen, dann seinen next-Verweis setzen, und erst dann den Kopf umhaengen. Sonst verliert man den Zugriff auf die restliche Liste.
Wahr / Falsch #2 15s ▶ Testen

In einem binaeren Suchbaum steht die 8 als LINKES Kind des Knotens 5. Kann das ein gueltiger Suchbaum sein?

✓ Falsch
Nein. Die Suchbaum-Eigenschaft verlangt: Im linken Teilbaum stehen nur kleinere Werte als im Elternknoten, im rechten nur groessere. 8 > 5 muesste also rechts stehen. Diese Ordnung ermoeglicht Suchen in O(log n).
Multiple Choice #3 25s ▶ Testen

Welche Traversierungsart eines Binaerbaums besucht zuerst den linken Teilbaum, dann die Wurzel, dann den rechten Teilbaum?

  • ○ Preorder (Vorordnung)
  • ● Inorder (Symmetrische Ordnung)
  • ○ Postorder (Nachordnung)
Inorder: links - Wurzel - rechts. Bei einem binaeren Suchbaum liefert Inorder die Elemente in sortierter Reihenfolge. Preorder: Wurzel - links - rechts. Postorder: links - rechts - Wurzel.
Sortieren #4 20s ▶ Testen

Ordne die Baumtraversierungen der Reihenfolge zu, in der sie die Wurzel besuchen (von frueh nach spaet):

✓ Antwort: Preorder: Wurzel zuerst, Inorder: Wurzel in der Mitte, Postorder: Wurzel zuletzt
Pre = vor (Wurzel vor den Teilbaeumen), In = zwischen (Wurzel zwischen den Teilbaeumen), Post = nach (Wurzel nach den Teilbaeumen). Das Praefix sagt, wann die Wurzel besucht wird.
Zahleneingabe #5 25s ▶ Testen

Ein binaerer Suchbaum enthaelt die Werte 5, 3, 8, 1, 4, 7, 9 (in dieser Reihenfolge eingefuegt). Wie viele Vergleiche braucht man maximal, um einen Wert zu finden?

✓ Antwort: 3
Der Baum hat 3 Ebenen: Wurzel 5, Ebene 2: 3 und 8, Ebene 3: 1, 4, 7, 9. Um z. B. die 9 zu finden: 5 (rechts), 8 (rechts), 9 (gefunden) = 3 Vergleiche.
Multiple Choice #6 20s ▶ Testen

Welche Datenstruktur eignet sich am besten fuer die Breitensuche (BFS) in einem Graphen?

  • ○ Stapel (Stack)
  • ● Warteschlange (Queue)
  • ○ Binaerer Suchbaum
Die Breitensuche verwendet eine Queue: Der Startknoten wird eingefuegt. In jedem Schritt wird der vorderste Knoten entnommen und seine Nachbarn werden hinten angefuegt. So werden Knoten ebenenweise besucht.
Wahr / Falsch #7 20s ▶ Testen

Ein Stapel (Stack) eignet sich besonders gut zur Implementierung der Tiefensuche (DFS).

✓ Wahr
Richtig. Die Tiefensuche geht so tief wie moeglich in den Graphen, bevor sie zurueckkehrt. Dies entspricht dem LIFO-Prinzip eines Stacks. Alternativ kann DFS auch rekursiv implementiert werden (der Call-Stack dient dann als Stapel).
Schwer
Sortieren #1 30s ▶ Testen

Ordne die folgenden Datenstrukturen nach ihrer typischen Zugriffsart (von eingeschraenkt zu flexibel):

✓ Antwort: Stack: nur Zugriff auf oberstes Element, Queue: nur Zugriff auf vorderstes Element, Verkettete Liste: Zugriff durch Durchlaufen ab dem Kopf, Array: direkter Zugriff ueber Index
Stack und Queue schraenken den Zugriff bewusst ein (Datenkapselung). Eine verkettete Liste erlaubt sequentiellen Zugriff. Ein Array ermoeglicht direkten Zugriff auf jede Position in O(1).
Zahleneingabe #2 20s ▶ Testen

Ein vollstaendiger Binaerbaum hat 4 Ebenen. Wie viele Blattknoten hat er?

✓ Antwort: 8
In einem vollstaendigen Binaerbaum mit h Ebenen hat die unterste Ebene 2^(h-1) Blaetter. Bei 4 Ebenen: 2^3 = 8 Blaetter. Gesamtzahl Knoten: 2^4 - 1 = 15.
Multiple Choice #3 20s ▶ Testen

Vor 1.000.000 gespeicherte Elemente soll ein neues Element ganz vorne eingefuegt werden. Wie viele bestehende Elemente muessen dafuer bewegt werden?

  • ● Array: 1.000.000 — verkettete Liste: 0
  • ○ Array: 0 — verkettete Liste: 1.000.000
  • ○ beide Strukturen: 1.000.000
Im Array muss jedes Element eine Position nach rechts ruecken (O(n)). In der verketteten Liste haengt man nur zwei Verweise um (O(1)) — kein Element wird bewegt. Das ist ihr grosser Vorteil beim Einfuegen.
Lückentext #4 20s ▶ Testen

Die ___ eines binaeren Suchbaums gibt an, wie viele Ebenen er hat. Ein entarteter Baum hat eine grosse, ein balancierter Baum eine kleine.

✓ Antwort: Hoehe
Die Hoehe bestimmt die Effizienz der Suche. Ein balancierter Baum mit n Knoten hat Hoehe O(log n), ein entarteter (zur Liste degradierter) Baum hat Hoehe O(n). Balancierte Baeume (AVL, Rot-Schwarz) halten die Hoehe gering.