棧(stack)是一種運(yùn)算受限的線性表。棧內(nèi)的元素只允許通過(guò)列表的一端訪問(wèn),這一端被稱為棧頂,相對(duì)地,把另一端稱為棧底。裝羽毛球的盒子是現(xiàn)實(shí)中常見(jiàn)的棧例子。棧被稱為一種后入先出(LIFO,last-in-first-out)的數(shù)據(jù)結(jié)構(gòu)。向一個(gè)棧插入新元素又稱作進(jìn)棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個(gè)棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

  下圖演示了入棧和出棧的過(guò)程:

  

  我們知道pop()方法雖然可以訪問(wèn)棧頂元素,但是調(diào)用該方法后,棧頂元素被刪除,而peek()方法返回棧頂元素,并不改變棧。push(),pop(),peek()是實(shí)現(xiàn)棧的三個(gè)主要方法,下表定義了棧的主要方法:

    主要方法及屬性
    dataStorageArray存儲(chǔ)數(shù)據(jù)的底層數(shù)據(jù)結(jié)構(gòu)
    topint記錄棧頂元素位置

    網(wǎng)友評(píng)論

      <button id="gnu6j"><input id="gnu6j"></input></button>
        • <li id="gnu6j"></li>
        • <rt id="gnu6j"></rt>
          <var id="gnu6j"></var>