Les 10 - Queue

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

This lesson contains 20 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 50 min

Items in this lesson

Datastructuren
Queue

Slide 1 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Quiz

This item has no instructions

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 - Quiz

This item has no instructions

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 - Quiz

This item has no instructions

Je gaat twee verzamelingen vergelijken. bekijk de afbeelding rechts, naar de rode vlakken.

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

Slide 6 - Quiz

This item has no instructions

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 - Quiz

This item has no instructions

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 question

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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

Slide 12 - Open question

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Quiz

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions

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 - Slide

This item has no instructions