堆疊(Stack)
是資料結構的一種,是一種很基本常見的資料結構,首先利用現實生活中的例子來說明,如下圖
假設你有一些書把他們疊起來,一層一層的往上疊,所以每次新的書本會放在最上面,而當想要拿取書本的時候,也是從最上面的開始拿。當然現實生活會有可能從中間抽出書本,不過在程式中是不可以的,在程式世界下圖會更貼切。
所以他是一種後進先出(Last-In-First-Out, LIFO)的排程,而在此資料結構中至少會實作兩個操作:
push:將資料放入堆疊頂端
pop:取出堆疊頂端之資料,有時候也會多實作一些額外的操作以方便使用,例如:
peek:看堆疊頂端的資料而不取出。(註:也有top等不同的用字)
size:取得堆疊的數目,在實作上一般可以使用陣列或連結串列(LinkedList)兩種方式來實作:
|