Stack (informatica): verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Perry V (overleg | bijdragen)
Madyno (overleg | bijdragen)
Geen bewerkingssamenvatting
Regel 1:
[[Bestand:Data stack.svg|thumb|Stack met de operaties ''push'' en ''pop''.]]
Een '''stack''' of '''stapel''' is in de [[informatica]] een [[datastructuur]] voor de opslag van een wisselend aantal elementen, waarbijwaarvoor geldt dat, net als bij een gewone stapel, het element dat het laatst werd toegevoegd, het eerst weer wordt opgehaald. Dit principe wordt ook wel [[Lifo|LIFO]] (''Last In First Out'') genoemd.
 
De tegenhanger van de stack is de [[queue (informatica)|queue]], die volgens het [[Fifo|FIFO]] (''First In First Out'') principe werkt.
 
== Datastructuur ==
== De datastructuur ''stack'' ==
De operaties die op een stack zijnkunnen deworden volgendetoegepast, zijn:
* ''push'': legt het meegegeven element op de stapel.
* ''pop'': neemt het bovenste element van de stapel af en levert het op.
Regel 11:
* ''call'': de [[programmateller]] wordt op de stack gezet en de executie wordt elders voortgezet.
* ''return'': ''pop'' naar de programmateller. Hierdoor wordt het door ''call'' onderbroken programma hervat.
 
Soms worden ook welnogl ondersteund:
* ''isempty'' of ''[[null]]'': levert ''true'' op als de stack leeg is, kan dienstdoen als een bescherming voor een ''stack underflow''.
* ''topisempty'' (of ''peek[[null]]''): levert het''true'' bovensteop element opals de stapelstack opleeg zonderis heten erkan afdienstdoen teals halen,bescherming kanvoor gesimuleerd worden wanneer deeen ''stack door één thread tegelijkertijd wordt gebruiktunderflow''.
* ''top'' (of ''peek''): levert het bovenste element van de stapel op zonder het er af te halen; kan gesimuleerd worden wanneer de stack door één thread tegelijkertijd wordt gebruikt.
 
Een stack is te vergelijken met een stapel borden: het laatste bord dat op de stapel is gelegd, wordt er het eerst weer van afgepakt. Een nog betere vergelijking is een stapel zoals in een [[bordenwagen]], waarbij alleen het bovenste element zichtbaar is, en de eventuele rest in het interieur verdwijnt.