Grundlagen der Programmierung (Pseudocode nachverfolgen)
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?
string array: val ← {"A", "B", "C", "D", "E", "F"}
integer array: next ← {3, 0, 5, 2, 4, 0}
【a】
integer: p ← 1
while (p ≠ 0)
output val[p]
p ← next[p]
endwhile
- Anext[3] ← 6, danach next[6] ← next[3]
- Bnext[6] ← 3, danach next[3] ← next[6]
- Cnext[6] ← next[3], danach next[3] ← 6
Antwort und Erläuterung anzeigen
Antwort: C. next[6] ← next[3], danach next[3] ← 6
Beim Einfügen wird zuerst das neue Element F auf E verwiesen, auf das C bisher verwies (next[3] = 5), und erst dann C auf F. next[6] ← next[3] ergibt next[6] = 5, und das folgende next[3] ← 6 verbindet C → F → E. In umgekehrter Reihenfolge läuft next[6] ← next[3] erst, nachdem next[3] bereits 6 ist, also gilt next[6] = 6: F verweist auf sich selbst, und die Ausgabe C, F, F, … endet nie. Beim Umhängen einer verketteten Liste wird in einer Reihenfolge zugewiesen, bei der der Weg zu den nachfolgenden Elementen nie verloren geht.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)