Grundlagen der Programmierung (Pseudocode nachverfolgen)
Ein Stack wird durch das ganzzahlige Array st mit 5 Elementen und die ganzzahlige Variable top dargestellt. Alle Elemente von st sind anfangs 0, und top beginnt bei 0. push(v) addiert 1 zu top und führt dann st[top] ← v aus; pop() gibt den Wert von st[top] zurück und subtrahiert dann 1 von top (die Elemente von st werden nicht verändert). Welche Werte haben top und st, nachdem das folgende Programm ausgeführt wurde?
push(5)
push(8)
pop()
push(3)
push(9)
pop()
push(7)
pop()
- Atop = 2, st = {5, 3, 0, 0, 0}
- Btop = 2, st = {5, 3, 7, 0, 0}
- Ctop = 5, st = {5, 8, 3, 9, 7}
Antwort und Erläuterung anzeigen
Antwort: B. top = 2, st = {5, 3, 7, 0, 0}
push(5) und push(8) ergeben st[1] = 5, st[2] = 8 und top = 2, und pop() gibt 8 zurück, sodass top = 1 bleibt. push(3) überschreibt st[2] mit 3, push(9) setzt st[3] = 9, und pop() setzt top wieder auf 2. push(7) überschreibt st[3] mit 7, und das letzte pop() ergibt top = 2. pop() verringert nur top, daher bleibt die entnommene 7 in st[3] stehen: st = {5, 3, 7, 0, 0}. Gültiger Inhalt des Stacks sind st[1] bis st[top], also 5 und 3.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)