Basis van programmeren (pseudocode traceren)
Het volgende programma drukt een gelinkte lijst af, waarvan de elementen met de array next aan elkaar zijn gekoppeld, door die te volgen vanaf het element met index 1. Array-indexen beginnen bij 1. Een next-waarde van 0 markeert het einde van de lijst. Welke reeks waarden wordt afgedrukt?
string array: val ← {"A", "B", "C", "D", "E"}
integer array: next ← {3, 0, 5, 2, 4}
integer: p ← 1
while (p ≠ 0)
output val[p]
p ← next[p]
endwhile
- AA, B, C, D, E
- BC, E, D, B
- CA, C, E, D, B
Antwoord en toelichting tonen
Antwoord: C. A, C, E, D, B
Met p = 1 drukt het programma val[1], A, af, en p ← next[1] verplaatst p naar 3. Daarna drukt het C af en gaat naar next[3] = 5, drukt E af en gaat naar next[5] = 4, drukt D af en gaat naar next[4] = 2, en drukt B af en gaat naar next[2] = 0, waarmee de lus eindigt. De uitvoer is A, C, E, D, B. De volgorde van de lijst wordt bepaald door de waarden in next, niet door de volgorde in de array.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)