Les 10 - Queue

Datastructuren
Queue
1 / 20
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

In deze les zitten 20 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 50 min

Onderdelen in deze les

Datastructuren
Queue

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Leerdoel
Aan het eind van de les ken je de kenmerken van een queue, ken je het principe First-in, First-out (FIFO) en kan je een queue programmeren met python.

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Wat is geen kenmerk van een verzameling
A
het heeft een index
B
de grootte is dynamisch
C
het kan dezelfde elementen bevatten

Slide 3 - Quizvraag

Deze slide heeft geen instructies

Bekijk onderstaande python code van een declaratie van een verzameling. Kan dit?
namen = {"Pieter", "pieter", "Sander", "Jan", "sander", "Karel"}
A
ja
B
nee

Slide 4 - Quizvraag

Deze slide heeft geen instructies

Wat is een voorwaarde als je verzamelingen wilt vergelijken?
A
Er moet minimaal één element anders zijn in de verzamelingen
B
Je moet twee verzamelingen hebben om te kunnen vergelijken
C
Er moet minimaal één element hetzelfde zijn in de verzamelingen

Slide 5 - Quizvraag

Deze slide heeft geen instructies

Je gaat twee verzamelingen vergelijken. bekijk de afbeelding rechts.

Dit zegt van de verzamelingen dat er sprake is van
A
een verschil
B
een doorsnede
C
een vereniging

Slide 6 - Quizvraag

Deze slide heeft geen instructies

Hieronder staan twee verzamelingen. Je wilt weten welke producten in beide verzamelingen zitten. Welke vergelijking ga je dan toepassen?
tomatensoep = {"tomaten", "bouillonblok", "ui"}
groentesoep = {"soepgroenten", "bouillonblok", "ui"}
A
verschil
B
doorsnede
C
vereniging

Slide 7 - Quizvraag

Deze slide heeft geen instructies

Hieronder staan twee verzamelingen. Je wilt weten welke producten in beide verzamelingen zitten. Je wilt dus een doorsnede bepalen van de verzamelingen. Geef de juiste python code om de vergelijking te maken.
tomatensoep = {"tomaten", "bouillonblok", "ui"}
groentesoep = {"soepgroenten", "bouillonblok", "ui"}

Slide 8 - Open vraag

Antwoord:

verschil = tomatensoep.intersection(groentesoep)
Queue
Een queue is een speciaal soort lijst: het stelt een wachtrij voor. Het Engelse woord voor wachtrij is queue.

Slide 9 - Tekstslide

Deze slide heeft geen instructies

First-in, First-out (FIFO)
Je kunt de rij mensen die bij een kassa staan te wachten zien als een queue. De klant die het eerst in de rij is gaan staan, is ook de klant die het eerste aan de beurt is bij de kassa. En de klant die als laatste in de rij gaat staan, moet het langst wachten om aan de beurt te komen. In een queue worden alle elementen bewaard op volgorde van toevoeging.

Dit principe wordt First-in, First-out (FIFO) genoemd.

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Werking
Een queue wordt veel gebruikt. Bijvoorbeeld door een processor van een computer. Alle verzoeken aan een processor worden in een queue geplaatst en volgens het FIFO-principe afgehandeld.

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Kan je nog een voorbeeld noemen waarin sprake is van een queue?

Slide 12 - Open vraag

Deze slide heeft geen instructies

Declaratie queue in python (1)
Een queue werkt niet direct in python. Hiervoor moet een zogenaamde library worden geïmporteerd.
from queue import Queue

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Declaratie queue in python (2)
Om met een queue te kunnen werken moet er eerst een variabele worden gedeclareerd van het type queue.
kassa = Queue()

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Toevoegen elementen aan een queue in python
Om een element toe te voegen aan de queue maak je gebruik van de functue put().


from queue import Queue
kassa = Queue()

kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Eelementen uit een queue ophalen in python
Om een element uit de queue op te halen maak je gebruik van de functie get().
from queue import Queue
kassa = Queue()
kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")

print(kassa.get())


Slide 16 - Tekstslide

Deze slide heeft geen instructies

Hoeveel elementen bevat de queue nog na het uitvoeren van onderstaande code?
from queue import Queue
kassa = Queue()
kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")
print(kassa.get())
A
0
B
1
C
2
D
3

Slide 17 - Quizvraag

Deze slide heeft geen instructies

Eelementen uit een queue ophalen
Als een element uit de queue is gehaald met de functie get() dan is dit element uit de queue gehaald en is dit element dus niet meer aanwezig in de queue!

Slide 18 - Tekstslide

Deze slide heeft geen instructies

Queue uitlezen tot deze leeg is in python
Om een queue uit te lezen tot deze leeg is kan er gebruik worden gemaakt van een iteratie en in combinatie met de functie empty().
from queue import Queue
kassa = Queue()
kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")

while not kassa.empty():
    volgendeKlant = kassa.get()
    print("De eerst volgende klant is: " + volgendeKlant)


Slide 19 - Tekstslide

Deze slide heeft geen instructies

Huidige aantal elementen in de queue
Het kan handig zijn om te weten hoeveel elementen er op een bepaald moment in de queue zitten. Om te controleren hoeveel elementen er in de queue zitten maak je gebruik van de functie qsize().
from queue import Queue
kassa = Queue()
kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")

print(kassa.qsize())


Slide 20 - Tekstslide

Deze slide heeft geen instructies