堆疊 ( Stack ) 是一個有序串列,僅能有一端加入與取出。堆疊具有先進後出 ( First In Last Out, FILO ) 或後進先出 ( Last In First Out, LIFO ) 的特性。
若是要透過程式碼來表示堆疊這種結構,一般是用陣列來實作。用陣列的好處就是結構簡潔易用; 缺點則是陣列的空間固定,堆疊大小也是固定。如果想讓堆疊有可大可小的彈性,則可用鏈結串列來實作。
佇列 ( Queue ) 的運作方式就像是在排隊一樣,因此佇列是一種先進先出 ( FIFO,First In First Out ) 的資料結構,佇列和堆疊一樣,都只能從單一方向放入及取出資料。不過,堆疊資料的進出都在同一端,而佇列資料的存放則是不同端。