Stack är en linjär ordnad följd av element, som följer "sist in, först ut"-principen. Precis som en papperstrave finns det två operationer man kan utföra: lyfta av (en: pop) och lägga på (en: push).[1]
Stacken är en mycket vanlig datastruktur och används implicit i i stort sett i alla datorprogram. Vid funktionsanrop i imperativa programspråk lagras anropsparametrarna och lokala variabler i en stack-struktur, så att de sedan kan hämtas tillbaka i rätt ordning när funktionen återvänder. Många processorer har en inbyggd stack för att hantera funktionsanrop och returadresser.
För att hålla reda på var i minnet det översta elementet i stacken finns används en stackpekare.