Les 10 - Stack

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

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

time-iconLesson duration is: 50 min

Items in this lesson

Datastructuren
Stack

Slide 1 - Slide

This item has no instructions

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

This item has no instructions

Omschrijf kort de werking van een queue (wachtrij)
timer
1:00

Slide 3 - Open question

This item has no instructions

Wat wordt er bedoeld met het FIFO principe?
timer
1:00

Slide 4 - Open question

This item has no instructions

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

Slide 5 - Open question

This item has no instructions

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()
timer
1:30

Slide 6 - Open question

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

This item has no instructions

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

This item has no instructions

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

This item has no instructions

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

This item has no instructions

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

Slide 11 - Slide

This item has no instructions

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

This item has no instructions

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

This item has no instructions

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

This item has no instructions

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

This item has no instructions


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

This item has no instructions