Les 11 - Stack

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

Cette leçon contient 16 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 50 min

Éléments de cette leçon

Datastructuren
Stack

Slide 1 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'instructions

Omschrijf kort de werking van een queue (wachtrij)

Slide 3 - Question ouverte

Cet élément n'a pas d'instructions

Wat wordt er bedoeld met het FIFO principe?

Slide 4 - Question ouverte

Cet élément n'a pas d'instructions

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

Slide 5 - Question ouverte

Cet élément n'a pas d'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()

Slide 6 - Question ouverte

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

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 11 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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 - Diapositive

Cet élément n'a pas d'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

Cet élément n'a pas d'instructions