Definitie van Stack in Programming

Een stapel is een array of lijststructuur van functie-aanroepen en parameters die worden gebruikt in moderne computerprogrammering en CPU-architectuur. Vergelijkbaar met een stapel borden in een buffetrestaurant of cafetaria, worden elementen in een stapel toegevoegd of verwijderd van de bovenkant van de stapel, in een "last in first, first out" of LIFO-volgorde.

Het proces van het toevoegen van gegevens aan een stapel wordt een 'push' genoemd, terwijl het ophalen van gegevens uit een stapel een 'pop' wordt genoemd. Dit gebeurt bovenaan de stapel. Een stapelaanwijzer geeft de omvang van de stapel aan en wordt aangepast wanneer elementen naar een stapel worden geduwd of naar een stapel worden gepusht.

Wanneer een functie wordt aangeroepen, wordt het adres van de volgende instructie op de stapel geplaatst.

Wanneer de functie wordt afgesloten, wordt het adres van de stapel verwijderd en wordt de uitvoering op dat adres voortgezet.

Acties op de stapel

Er zijn andere acties die op een stapel kunnen worden uitgevoerd, afhankelijk van de programmeeromgeving.

  • Peek: maakt inspectie van het bovenste element op een stapel mogelijk zonder het element daadwerkelijk te verwijderen.
  • Ruilen: ook wel 'ruilen' genoemd, de posities van de twee bovenste elementen van de stapel worden verwisseld, waarbij het eerste element het tweede wordt en het tweede het bovenste.
  • Dupliceren: het bovenste element wordt uit de stapel gehaald en vervolgens tweemaal op de stapel teruggeduwd, waardoor een duplicaat van het oorspronkelijke element wordt gemaakt.
  • Roteren: wordt ook 'roll' genoemd en geeft het aantal elementen in een stapel aan die in hun volgorde worden geroteerd. Als u bijvoorbeeld de vier bovenste elementen van een stapel draait, verplaatst u het bovenste element naar de vierde positie, terwijl de volgende drie elementen één positie omhoog gaan.

De stapel is ook bekend als "Last In First Out (LIFO) ".

Voorbeelden: In C en C ++ worden lokaal (of automatisch) gedeclareerde variabelen op de stapel opgeslagen.