棧是一種遵循後進先出(lifo)的資料結構,其總共就兩個主要的操作,分別是push和pop。
看上面這張圖可以大致的知道,棧的幾個特點:
push操作:
pop操作:
通過上面的幾個特點,來看一看js如何用**實現乙個棧
class stack
/*** push操作
*/push(x)
// push乙個新的資料,棧頂的指向也同時像後挪動一位,指向最新的資料位址
this.top++;
// 將新的資料新增進棧
this.data[this.top] = x;
}/**
* pop操作
*/pop()
// 獲得棧頂資料
const x = this.data[this.top];
this.top--;
return x;
}/**
* 獲取棧的長度
*/get length()
}
通過上面的**演示,對於棧應該會有乙個大致的了解,後面會繼續介紹其他的資料結構,並且可能會介紹如何使用棧來實現其他的資料結構,以及資料結構的一些應用。
學習前端的同學可能對於資料結構和演算法複雜度相對於其他語言的工程師會稍弱一些,但是這些對於乙個向深入學習前端的來說還是非常重要。
js資料結構 棧
棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素...
js 資料結構 棧
棧 先進後出,新新增和待刪除的元素都儲存在棧頂。可以用陣列的push方法入棧,pop出棧。class stack push element pop peek isempty size clear print tostring 棧的實際應用 二進位制轉十進位制 十進位制轉換任意進製 二進位制 八進位制...
js實現資料結構 棧
棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或待刪除的元素都儲存在棧的同一端,稱作棧頂,另一端就叫棧底。後進先出 新元素都靠近棧頂,舊元素都接近棧底,所以新元素會比舊元素要先出棧 放在桌子上的一堆書和餐廳裡堆放的盤子 建立棧 建立乙個類來表示棧,宣告棧的各種屬性和方法,如下 宣告棧和棧的...