Løsningsforslag - oppgaver i Avsnitt 4.1.1


Oppgave 1

  legg inn 5     (5 øverst på stakken)
  legg inn 7     (7 øverst på stakken)
  ta ut          (7 tas ut, 5 er øverst)
  legg inn 3     (3 øverst på stakken)
  legg inn 7     (7 øverst på stakken)
  ta ut          (7 tas ut, 3 er øverst)

  3 er nå øverst på stakken

Oppgave 2

  legg inn 2     (2 øverst på stakken)
  legg inn 5     (5 øverst på stakken)
  legg inn 1     (1 øverst på stakken)
  kikk           (ingen endring i stakken)
  ta ut          (1 tas ut, 5 er øverst)

  5 er nå øverst på stakken

Oppgave 3

  while (!A.tom()) C.leggInn(A.taUt());  // elementene flyttes fra A til C
  while (!C.tom()) B.leggInn(C.taUt());  // elementene flyttes fra C til B

Oppgave 4

Svaret er ja! La B være en hjelpestakk og temp en hjelpevariabel. Anta at stakken A inneholder tallene 1, 2, 3 og 4 med 4 øverst. Vi starter med å flytte den øverste på A (dvs. 4) til hjelpevariabelen temp og restene av tallene på A til hjelpestakken B. Så flyttes verdien i variabelen temp, dvs. 4, tilbake til A og havner dermed på bunnen av A. Så flyttes tallene på B tilbake til A. Dermed inneholder A tallene 4, 1, 2, 3 med 3 øverst.

Dette gjentas. Den øverste på A (dvs. 3) flyttes til temp og de to neste tallene på A til B. Verdien i temp, dvs. 3, flyttes tilbake til A og havner dermed ovenpå 4. Så flyttes tallene på B tilbake til A. Dermed inneholder A tallene 4, 3, 1, 2 med 2 øverst.

Osv. til A har fått verdiene snudd.

Oppgave 5

Svaret er ja! Gjør som i Oppgave 4. Da vil elementene på A komme i omvendt rekkefølge. Avslutt med å flytte dem fra A til B.

Oppgave 6

Ja, det er mulig med en idé tilsvarende den i Oppgave 4. Se også Oppgave 7 i Avsnitt 4.1.2.

Oppgave 7

Opprett en stakk. Gå så gjennom teksten. Hver venstre-parentes vi finner legges på stakken. Finner vi en høyre-parentes tar vi en venstre-parentes fra stakken. Disse hører sammen. Hvis vi får tom stakk betyr at vi har en høyre-parentes som ikke har noen tilhørende venstre-parentes. Hvis det er noe igjen på stakken når vi er ferdig, betyr det at vi har en venstre-parentes (eller parenteser) uten tilhørende høyre-parentes.