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()
  1. Atop = 2, st = {5, 3, 0, 0, 0}
  2. Btop = 2, st = {5, 3, 7, 0, 0}
  3. 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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Eine Warteschlange verwendet das Zeichenketten-Array q mit 4 Elementen als Ring. head und tail beginnen bei 1. enq(v) führt q[tail] ← v und dann tail ← tail mod 4 + 1 aus; deq() gibt den Wert von q[head] zurück und führt dann head ← head mod 4 + 1 aus. In welchem Element von q wird „E“ gespeichert, wenn das folgende Programm ausgeführt wird?
  2. Das folgende Programm gibt eine verkettete Liste aus, deren Elemente über das Array next verbunden sind, indem es ihr ab dem Element mit Index 1 folgt. Die Array-Indizes beginnen bei 1. Der next-Wert 0 markiert das Ende der Liste. Welche Folge von Werten wird ausgegeben?
  3. Das folgende Programm fügt „F“ aus val[6] direkt hinter „C“ (Index 3) in die verkettete Liste A → C → E → D → B ein, die über das Array next verbunden ist, und gibt die Liste dann ab dem Element mit Index 1 aus. Die Array-Indizes beginnen bei 1. Der next-Wert 0 markiert das Ende der Liste. Was gehört an die Stelle von 【a】, damit die Ausgabe A, C, F, E, D, B lautet?
  4. Die folgende for-Schleife erhöht ihre Laufvariable jeweils um 5. Welchen Wert hat c nach der Ausführung?
  5. Im folgenden Programm wertet and seine rechte Seite nicht aus, wenn die linke Seite false ist (Kurzschlussauswertung). cnt ist eine globale Variable. Welchen Wert hat cnt nach der Ausführung des Programms?