Inhoudsopgave:
Definitie - Wat betekent Stack?
Een stapel is een conceptuele structuur die bestaat uit een set homogene elementen en is gebaseerd op het principe van last in first out (LIFO). Het is een algemeen gebruikt abstract gegevenstype met twee belangrijke bewerkingen, namelijk push en pop. Push en pop worden uitgevoerd op het bovenste element, het item dat het meest recent aan de stapel is toegevoegd. De duwbewerking voegt een element toe aan de stapel, terwijl de popbewerking een element uit de bovenste positie verwijdert. Het stapelconcept wordt gebruikt in de programmering en geheugenorganisatie in computers.
Techopedia legt Stack uit
Een stapel vertegenwoordigt een reeks objecten of elementen in een lineair datastructuurformaat. De stapel bestaat uit een begrensde bodem en alle bewerkingen worden op de bovenste positie uitgevoerd. Telkens wanneer een element wordt toegevoegd aan de stapel door de push-bewerking, wordt de bovenste waarde met één verhoogd en wanneer een element uit de stapel komt, wordt de bovenste waarde met één verlaagd. Een wijzer naar de bovenste positie van de stapel wordt ook wel de stapelwijzer genoemd.
Een stapel kan een vaste grootte hebben of een dynamische implementatie hebben waarbij de grootte mag veranderen. In het geval van stapels met begrensde capaciteit veroorzaakt het proberen om een element toe te voegen aan een reeds volle stapel een uitzondering voor stapeloverloop. Op dezelfde manier staat een situatie waarbij een pop-bewerking een element probeert te verwijderen uit een reeds lege stapel, bekend als onderloop.
Een stapel wordt beschouwd als een beperkte gegevensstructuur omdat slechts een beperkt aantal bewerkingen zijn toegestaan. Naast de push- en pop-bewerkingen, kunnen bepaalde implementaties geavanceerde bewerkingen mogelijk maken, zoals:
- Peek - Bekijk het bovenste item in de stapel.
- Dupliceren - Kopieer de waarde van het bovenste item naar een variabele en duw deze terug in de stapel.
- Wisselen - verwissel de twee bovenste items in de stapel.
- Roteren - Verplaats de bovenste elementen in de stapel zoals aangegeven door een nummer of beweeg op een roterende manier.
Software-implementaties van het stapelconcept worden uitgevoerd met behulp van arrays en gekoppelde lijsten waarbij de bovenste positie wordt gevolgd met behulp van een variabele respectievelijk koptekstaanwijzer. Veel programmeertalen bieden ingebouwde functies om stapelimplementatie te ondersteunen.
Hardwarestapels worden geïmplementeerd voor geheugentoewijzing en toegang met een vaste oorsprong en grootte. Stapelregisters worden gebruikt om de waarde van de stapelwijzer op te slaan.