Les 11 - Stack

Datastructuren
Stack
1 / 16
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

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

time-iconLesduur is: 50 min

Onderdelen in deze les

Datastructuren
Stack

Slide 1 - Tekstslide

Deze slide heeft geen instructies

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

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Omschrijf kort de werking van een queue (wachtrij)

Slide 3 - Open vraag

Deze slide heeft geen instructies

Wat wordt er bedoeld met het FIFO principe?

Slide 4 - Open vraag

Deze slide heeft geen instructies

Om het datatype queue te gebruiken in python moet er eerst een library (bibliotheek) geladen worden. Leg kort uit waarom.

Slide 5 - Open vraag

Deze slide heeft geen instructies

Hieronder staat een declaratie van een queue in python. Schrijf de code om een klant (element) toe te voegen aan de wachtrij.
from queue import Queue
kassa = Queue()

Slide 6 - Open vraag

kassa.put("klant 1")


from queue import Queue
kassa = Queue()
kassa.put("klant 1")
kassa.put("klant 2")
kassa.put("klant 3")
Bekijk de python code die hier rechts staat. Met welke code lees je in alle elementen uit de queue uit?
A
while kassa.empty(): print(kassa.get())
B
while not kassa.empty(): print(kassa.put())
C
while kassa.empty(): print(kassa.put())
D
while not kassa.empty(): print(kassa.get())

Slide 7 - Quizvraag

Deze slide heeft geen instructies

Stack
Een stack is te vergelijken met een queue, maar werkt precies andersom. Het element dat als laatste is toegevoegd zal ook al eerste weer uit de stack worden gehaald.

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Last-in, First-out (LIFO)
In en tekstverwerker heb je een knop met wijzigingen ongedaan maken. Iedere wijziging wordt bijgehouden in een stack. Wil je een wijziging ongedaan maken dan hoef je alleen maar op wijziging ongedaan maken te klikken en je laatste wijziging wordt ongedaan gemaakt. 

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

Slide 9 - Tekstslide

Deze slide heeft geen instructies

Werking
Als een element wordt toegevoegd aan een stack wordt dit append genoemd. Wordt een element uit de stack gehaald dan noemen we dit pop.

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Declaratie stack in python
internetGeschiedenis = [ 
  "www.google.nl",
  "www.vlietlandcollege.nl"]

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Toevoegen elementen aan een stack in python
Om een element aan een stack toe te voegen maak je gebruik van de functie append().
internetGeschiedenis = [
  "www.google.nl",
  "www.vlietlandcollege.nl"]

internetGeschiedenis.append("www.wikipedia.nl")

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Eelementen uit een stack ophalen in python
Om een element uit een stack op te halen maak je gebruik van de functie pop().
internetGeschiedenis = [
  "www.google.nl",
  "www.vlietlandcollege.nl"]

print(internetGeschiedenis.pop())

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Tel aantal elementen in een stack in python
Om het aantal elementen in een stack te tellen kan gebruik worden gemaakt van de functie len(). In ondertaand voorbeeld staat de functie len() in de functie print(). De functie len() geeft een getal terug. De functie print kan echter alleen overweg met strings. Daarom staat voor de functie len() de functie str().
internetGeschiedenis = [
  "www.google.nl",
  "www.vlietlandcollege.nl"]


print(str(len(internetGeschiedenis)))

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Alle elementen uit een stack ophalen in python
Om alle elementen uit een stack op te halen kan een iteratie gecombineerd worden met de functie len().
internetGeschiedenis = [
  "www.google.nl",
  "www.fundament-online.nl"]


while len(internetGeschiedenis) > 0
  print(internetGeschiedenis.pop())

Slide 15 - Tekstslide

Deze slide heeft geen instructies


Bekijk de python code. Wat is de uitvoer van de code?
mijnOrder = []
mijnOrder.append("Hamburger")
mijnOrder.append("Frietjes")
mijnOrder.append("Cola")
print(mijnOrder.pop())
print(len(mijnOrder))
A
Hamburger 2
B
Cola 3
C
Cola 2
D
Hamburger 3

Slide 16 - Quizvraag

Deze slide heeft geen instructies