說明
為了加強自己的內功,我準備多學學底層的基礎的東西,剛看完了你不知道的js,下面來整一整資料結構,第一個就是棧。
開始了
棧是一種遵循後進先出(last in first out)原則的有序集合。新新增的或待刪除的元素都儲存在棧的同一端,稱為棧頂,另一端就是棧底。就像裝乒乓球的盒子,
下面用程式碼來實現一下。ES6版本
class Stack {
constructor() {
this.items = []
}
// 往棧裡新增新元素
push (ele) {
this.items.push(ele)
}
// 移除棧裡的元素
pop() {
return this.items.pop()
}
// 檢視棧頂的元素
peek () {
return this.items[items.length - 1]
}
// 檢查棧頂是否為空
isEmpty () {
return this.items.length == 0
}
// 返回棧的長度
size () {
return this.items.length;
}
// 清空棧
clear () {
this.items = []
}
// 列印棧元素 ,測試使用
console () {
return this.items
}
}
複製程式碼
ES版本
function Stack () {
var items = [];
//往棧裡新增新元素
this.push = function (ele) {
items.push(ele);
},
// 移除棧裡的元素
this.pop = function () {
return items.pop();
},
// 檢視棧頂的元素
this.peek = function () {
return items[items.length -1]
},
// 檢查棧頂是否為空
this.isEmpty = function () {
return items.length == 0;
},
// 返回棧的長度
this.size = function () {
return items.length
},
// 清空棧
this.clear = function () {
items = []
},
// 列印棧元素 ,測試使用
this.console = function () {
return items
}
}
複製程式碼
下一篇是堆。