棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
先來做乙個簡單的關於棧的題
有六個元素6,5,4,3,2,1的順序進棧,下列哪乙個不是合法的出棧順序 ( )
a:5,4,3,6,1,2
b:4,5,3,2,1,6
c:3,4,6,5,2,1
答案是 c
此題考查堆疊「後進先出」的特點。
先看題目,這裡的六個元素不是全部一起放入棧中,只是按照順序放入,千萬不能理解錯了,比如說第乙個出棧的元素是1,則出棧順序一定是1,2,3,4,5,6,沒有其他情況。
選項a,第乙個出棧元素是5,因為6先於5進棧,所以必定在5之後出棧,其餘的元素出棧順序任意;
選項b,第乙個出棧元素是4,所以5和6兩個元素必定在4之後依次出棧;
選項c,第乙個出棧元素是3,則必有4、5、6三個元素依次在3後面出棧,但是選項c中的順序是3、4、6、5,這是不符合要求的,所以c錯誤
下面用js來封裝一下棧
js資料結構 棧
棧是一種遵循後進先出 lifo 的資料結構,其總共就兩個主要的操作,分別是push和pop。看上面這張圖可以大致的知道,棧的幾個特點 push操作 pop操作 通過上面的幾個特點,來看一看js如何用 實現乙個棧 class stack push操作 push x push乙個新的資料,棧頂的指向也同...
js 資料結構 棧
棧 先進後出,新新增和待刪除的元素都儲存在棧頂。可以用陣列的push方法入棧,pop出棧。class stack push element pop peek isempty size clear print tostring 棧的實際應用 二進位制轉十進位制 十進位制轉換任意進製 二進位制 八進位制...
js實現資料結構 棧
棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或待刪除的元素都儲存在棧的同一端,稱作棧頂,另一端就叫棧底。後進先出 新元素都靠近棧頂,舊元素都接近棧底,所以新元素會比舊元素要先出棧 放在桌子上的一堆書和餐廳裡堆放的盤子 建立棧 建立乙個類來表示棧,宣告棧的各種屬性和方法,如下 宣告棧和棧的...