棧(Stack),也稱堆棧,是一種操作受限的線性表. 棧只允許在線性表的一端進行插入/刪除等操作,不允許在其他位置插入/刪除。
在線性表中進行插入/刪除的一端稱為棧頂(top), 棧頂保存的元素稱為棧頂元素, 相對的另一端稱為棧底(bottom)。
如果棧中沒有數據元素稱為空棧。
向棧中插入元素,稱為進?;蛉霔? 從棧中刪除元素稱退?;虺鰲?。
棧的插入/刪除操作只允許 在棧頂進行, 后進棧的元素必定先出棧, 稱為后進先出表(First In last Out, 簡稱FILO, 先進后出)。
堆棧抽象數據類型的定義
ADT Stack {
數據對象: D= {a0,a1,a2...an, ai是同一種數據類型的元素}
數據關系: R={}
基本操作:
getSize() 返回元素的個數
isEmpty() 判斷堆棧是否為空
push( Object ) 壓棧,入棧
pop() 彈棧,出棧
peek() 返回棧頂元素
}ADT Stack