đź‘€ Voorbeeld - Naar de supermarkt
Roger gaat na zijn werk naar de supermarkt om inkopen te doen voor het avondeten. Er is maar één kassa open dus moet hij aanschuiven in een lange rij.
Tijdens het wachten observeert hij de rij en de volgorde van de mensen die aanschuiven.
đź§ Denkoefening - In en uit de rij
- Als er iemand nieuw aansluit in de rij aan de kassa, waar moet die persoon dan aansluiten?
- Als er iemand klaar is, waar verlaat die persoon dan de rij aan de kassa?
We kunnen bovenstaand voorbeeld modelleren met een wachtrij.
âť— Definitie - Wachtrij
Een wachtrij (queue in het Engels) is een datastructuur waaraan je elementen kan toevoegen en elementen verwijderen. De elementen worden verwijderd in dezelfde volgorde waarin ze zijn toegevoegd.
Met andere woorden: nieuwe elementen worden aan het einde van de wachtrij toegevoegd en elementen worden verwijderd aan het begin van de wachtrij.
Een wachtrij volgt het FIFO-principe. FIFO staat voor first in, first out.
Een wachtrij is geen ingebouwde datastructuur in Python. Maar we kunnen de wachtrij wel zelf modelleren, met behulp van een klasse Wachtrij
.
Die zou er bijvoorbeeld zo uit kunnen zien:
class Wachtrij:
def __init__(self):
self.wachtrij = []
def push(self,elem):
# Voeg achteraan toe
self.wachtrij.append(elem)
def pop(self):
# Verwijder vooraan, en return het verwijderde element
elem = self.wachtrij[0]
self.wachtrij = self.wachtrij[1:]
return elem
đź’» Programmeeroefening - Eat, sleep, code, repeat
- Kopieer de klasse
Wachtrij
en plak ze in de editor hieronder.- Maak vervolgens een object aan van deze klasse.
- Voeg achtereenvolgens de volgende strings toe aan de wachtrij: “eat”, “sleep”, “code”, “repeat”
- Verwijder vervolgens de vier toegevoegde elementen door de functie
pop()
vier keer aan te roepen. Print telkens het resultaat van die functie.