js 資料結構(一) 棧

2021-09-19 15:37:34 字數 1054 閱讀 5187

棧是一種遵從後進先出(lifo)原則的有序集合。新新增的或待刪除的元素都儲存在棧的末尾,稱作棧頂,另一端就叫棧底。在棧裡,新元素都靠近棧頂,舊元素都接近棧頂。

現實生活中就有很多棧的例子。如下圖的書本,這一摞書如果要取肯定是先去最上面的那一本,但它是最後乙個放上去的,也就是棧頂的元素都是待新增或是待刪除的。這就是後進先出的實際例子。

棧的建立:

我們建立乙個類來表示棧。先宣告:

function stack()
然後我們需要一種資料結構來儲存棧裡的元素:

var items = ;

接下來,我們給棧宣告一些方法:

我們利用這些方法來實現乙個棧:

function stack() 

this.pop = function()

this.peek = function()

this.isempty = function()

this.size = function()

this.clear = function()

this.print = function()

}

我們來測試下:

var stack = new stack();

console.log(stack.isempty()); // true

stack.push(5);

stack.push(8);

console.log(stack.peek()); // 8

stack.push(11);

console.log(stack.size()); // 3

stack.pop();

console.log(stack.size()); // 2

stack.print(); // 5,8

js資料結構 棧

棧是一種遵循後進先出 lifo 的資料結構,其總共就兩個主要的操作,分別是push和pop。看上面這張圖可以大致的知道,棧的幾個特點 push操作 pop操作 通過上面的幾個特點,來看一看js如何用 實現乙個棧 class stack push操作 push x push乙個新的資料,棧頂的指向也同...

js資料結構 棧

棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素...

js 資料結構 棧

棧 先進後出,新新增和待刪除的元素都儲存在棧頂。可以用陣列的push方法入棧,pop出棧。class stack push element pop peek isempty size clear print tostring 棧的實際應用 二進位制轉十進位制 十進位制轉換任意進製 二進位制 八進位制...