Basis van programmeren (pseudocode traceren)

Het volgende programma voegt „F”, in val[6], direct na „C” (index 3) in de gelinkte lijst A → C → E → D → B in, waarvan de elementen met de array next aan elkaar zijn gekoppeld, en drukt daarna de lijst af vanaf het element met index 1. Array-indexen beginnen bij 1. Een next-waarde van 0 markeert het einde van de lijst. Wat moet er op de plaats van 【a】 staan, zodat de uitvoer A, C, F, E, D, B is?

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
  1. Anext[3] ← 6, daarna next[6] ← next[3]
  2. Bnext[6] ← 3, daarna next[3] ← next[6]
  3. Cnext[6] ← next[3], daarna next[3] ← 6
Antwoord en toelichting tonen

Antwoord: C. next[6] ← next[3], daarna next[3] ← 6

Om in te voegen, laat je eerst het nieuwe element F wijzen naar E, waarnaar C wees (next[3] = 5), en pas daarna C naar F. next[6] ← next[3] geeft next[6] = 5, en de volgende next[3] ← 6 koppelt C → F → E. In de omgekeerde volgorde wordt next[6] ← next[3] uitgevoerd nadat next[3] al 6 is geworden, dus next[6] = 6: F wijst naar zichzelf en de uitvoer C, F, F, … eindigt nooit. Bij het omzetten van koppelingen in een gelinkte lijst ken je toe in een volgorde waarbij de weg naar de volgende elementen nooit verloren gaat.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. De volgende for-lus verhoogt de lusvariabele telkens met 5. Wat is de waarde van c nadat de lus is uitgevoerd?
  2. In het volgende programma evalueert and de rechterkant niet als de linkerkant false is (kortsluitevaluatie). cnt is een globale variabele. Wat is de waarde van cnt nadat het programma is uitgevoerd?
  3. Het volgende programma zoekt de waarde x in de array a met n elementen en zet de index waar die wordt gevonden in i. Array-indexen beginnen bij 1. and en or evalueren hun rechterkant niet als de linkerkant alleen het resultaat al bepaalt. Welke voorwaarde op de plaats van 【a】 leest a[n + 1], buiten de array, als x niet in a voorkomt?
  4. Reële waarden worden voorgesteld in IEEE 754 dubbele precisie (binary64), en elke som wordt afgerond naar de dichtstbijzijnde voorstelbare waarde. Wat is de waarde van c nadat het volgende programma is uitgevoerd?
  5. De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Wat is de waarde van x nadat het volgende programma is uitgevoerd?