堆棧,通常稱爲棧,是計算機科學中的一箇重要概念,是一種數據結構。
堆棧在本質上只是內存中的一片區域,具有特定的存儲方式,其特點是一端(稱爲棧頂)用於插入(推送)和刪除(彈出)數據,且遵循“先進後出”的原則。這意味着最先進入堆棧的數據最後被取出。堆棧在計算機程序中有着廣泛的應用,如函數調用、中斷處理、括號匹配、深度優先搜索和表達式求值等。
此外,在計算機的內存儲器中,有一部分區域被專門劃分出來用作堆棧,這被稱爲軟件堆棧。而由硬件實現的堆棧,如用寄存器構成的堆棧,則被稱爲硬件堆棧。在單片機應用中,堆棧作爲一箇特殊的存儲區,用於暫時存放數據和地址,主要功能是保存和恢復現場數據。