Datenstrukturen und Algorithmen

Auf einem leeren Stack werden nacheinander die Operationen push 1, push 2, pop, push 3, push 4, pop, pop ausgeführt. In welcher Reihenfolge werden die Werte durch pop entnommen?

  1. A1, 2, 3
  2. B2, 3, 4
  3. C2, 4, 3
Antwort und Erläuterung anzeigen

Antwort: C. 2, 4, 3

Ein Stack ist eine LIFO-Struktur (Last In, First Out): Was zuletzt abgelegt wurde, wird zuerst entnommen. Nach push 1 und push 2 entnimmt pop den obersten Wert 2, und 1 bleibt übrig. Werden dann 3 und 4 abgelegt, liegen von oben 4, 3, 1, sodass die nächsten beiden pop-Operationen 4 und dann 3 entnehmen. Die Werte kommen also in der Reihenfolge 2, 4, 3 heraus, und 1 bleibt auf dem Stack. 1, 2, 3 wäre die Reihenfolge einer Warteschlange (Queue, First In, First Out, FIFO), die das zuerst eingefügte Element zuerst entnimmt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Datenstrukturen und Algorithmen

  1. In eine leere Warteschlange (Queue) werden die Elemente A, B und C in dieser Reihenfolge eingefügt. Dann wird ein Element entnommen, D eingefügt und ein Element entnommen, E eingefügt und ein Element entnommen. In welcher Reihenfolge werden die Elemente entnommen?
  2. Der Ausdruck „3 4 + 2 * 5 −“ in umgekehrter polnischer Notation (Postfixnotation) wird ausgewertet, indem jede Zahl auf einen Stack gelegt wird und bei jedem Operator zwei Werte entnommen, verrechnet und das Ergebnis wieder abgelegt wird. Welches Ergebnis entsteht? Der linke Operand eines Operators ist der Wert, der früher abgelegt wurde.
  3. Welche Aussage beschreibt eine Kollision in einer Hashtabelle richtig?
  4. In einer Hashtabelle der Größe 7 (Positionen 0 bis 6) werden mit der Hashfunktion h(k) = k mod 7 die Schlüssel 10, 17, 24 und 3 in dieser Reihenfolge gespeichert. Kollisionen werden durch lineares Sondieren aufgelöst, das jeweils eine Position weiterrückt (nach 6 folgt 0), bis ein freier Platz gefunden ist. An welcher Position wird der Schlüssel 3 gespeichert?
  5. Welche Aussage vergleicht die Verkettung (Chaining: Elemente derselben Position werden in einer verketteten Liste verbunden) und die offene Adressierung (eine andere freie Position innerhalb der Tabelle wird gesucht) als Verfahren zur Kollisionsauflösung in Hashtabellen richtig? Der Belegungsfaktor ist die Zahl der gespeicherten Elemente geteilt durch die Tabellengröße.