棧(stack)是一種運(yùn)算受限的線性表。棧內(nèi)的元素只允許通過列表的一端訪問,這一端被稱為棧頂,相對地,把另一端稱為棧底。裝羽毛球的盒子是現(xiàn)實中常見的棧例子。棧被稱為一種后入先出(LIFO,last-in-first-out)的數(shù)據(jù)結(jié)構(gòu)。向一個棧插入新元素又稱作進(jìn)棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
下圖演示了入棧和出棧的過程:
我們知道pop()方法雖然可以訪問棧頂元素,但是調(diào)用該方法后,棧頂元素被刪除,而peek()方法返回棧頂元素,并不改變棧。push(),pop(),peek()是實現(xiàn)棧的三個主要方法,下表定義了棧的主要方法:
dataStorage | Array | 存儲數(shù)據(jù)的底層數(shù)據(jù)結(jié)構(gòu) |
top | int | 記錄棧頂元素位置 |
網(wǎng)友評論 |