堆棧是壹個在計算機科學中經常使用的抽象數據類型。堆棧中的物體具有壹個特性: 最後壹個放入堆棧中的物體總是被最先拿出來, 這個特性通常稱為後進先出(LIFO)隊列。 堆棧中定義了壹些操作。 兩個最重要的是PUSH和POP。 PUSH操作在堆棧的頂部加入壹 個元素。POP操作相反, 在堆棧頂部移去壹個元素, 並將堆棧的大小減壹。堆棧溢出的產生是由於過多的函數調用,導致調用堆棧無法容納這些調用的返回地址,壹般在遞歸中產生。堆棧溢出很可能由無限遞歸(Infinite recursion)產生,但也可能僅僅是過多的堆棧層級。