Let op! Een wachtrij als lijst modelleren is eigenlijk helemaal niet efficiënt. Dat komt omdat de operatie om een element vooraan in een lijst te verwijderen erg traag is.
In het geheugen moeten alle elementen dan een plaatsje opschuiven naar voren, zodat het geheugenadres dat naar de lijst verwijst wel hetzelfde kan blijven.
👀 Voorbeeld - Wachtrij bij de dokter
Stel dat we de wachtrij bij de dokter modelleren als een lijst. Er zitten momenteel 4 personen te wachten, in volgorde: Jana, Dorien, Nele en Sam. In het geheugen wordt de wachtrij als lijst opgeslagen als volgt:
De lijst begint op geheugenadres 26.
Als Jana aan de beurt is, wordt ze verwijderd uit de wachtrij. Het geheugenadres waarop de lijst wordt opgeslagen verandert niet, maar de elementen moeten wel elk een plaatsje opschuiven.
🤔 … maar waarom veranderen we dan niet gewoon het geheugenadres?
☝️😌 Als je het geheugenadres van de lijst verandert, maak je eigenlijk een nieuwe lijst aan. Dus dat is niet hetzelfde als de lijst aanpassen.
💻 Programmeeroefening - Strandcabine
Wanneer je aan de Belgische kust een strandcabine wil kopen, kan dat niet zomaar. Er zijn namelijk een handvol geïnteresseerden. Vooraleer je kan kopen, kom je op een wachtlijst te staan en dat kan jaren duren.
Je bent nu eindelijk bijna aan de beurt: familie Dubois, familie Diallo, familie Nguyen en familie Maes staan nog voor je, daarna ben jij aan de beurt.
- Gebruik de klasse
Wachtrij
en een variabelewachtlijst
om de wachtlijst te modelleren met de achternamen van de families die voor je aan de beurt zijn.- Verwijder alle families vervolgens één voor één tot het aan jou is.