Du tar ut fra feil ende av køen

Handler om: Liste, Algoritme

En kø er først inn, først ut: den som stilte seg først, betjenes først (`pop(0)`). En stakk er sist inn, først ut, som en tallerkenstabel (`pop()`). `pop()` uten argument tar fra slutten — bruker du den i en kø, betjener du den som kom sist.

Eksempel

Tre elever stiller seg i kø, og systemet kaller opp den som kom sist.

Slik tenker du riktig om det

Tegn køen som en rad med piler: nye stiller seg bakerst, betjeningen skjer forrest. `pop()` tar alltid bakerst — derfor trenger en kø `pop(0)`.

Slik ser det ut i kode

Slik gikk det galt

def neste(self):
    return self.koen.pop()      # tar den SISTE

Slik fikser du det

def neste(self):
    return self.koen.pop(0)     # tar den FØRSTE

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala