(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱爲棧頂,相對地,把另一端稱爲棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。 -- 百度百科
01 棧的創建 -- javascript 數據結構與算法
function Stack() {
var items = [];
this.push = function (element) {
items.push(element);
};
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.print = function () {
console.log(items.toString());
};
}
首先我們先創建一Stack類 function Stack() {}
創建一個數組來保存數據 var items = []
=01= 向棧添加元素
this.push = function (element) {
items.push(element);
};
=02= 移除棧裏的元素
this.pop = function () {
return items.pop();
};
=03= 查看返回棧頂的元素
this.peek = function () {
return items[items.length - 1];
};
=04= 判斷內部數組的長度是否爲0
this.isEmpty = function () {
return items.length == 0;
};
=05=返回棧的長度
this.size = function () {
return items.length;
};
=06=清空
this.clear = function () {
items = [];
};
=07=輸出在控制檯
this.print = function () {
console.log(items.toString());
}; `
02 使用Stack類
var stack = new Stack();
console.log(stack.isEmpty());
首先我們初始化 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
console.log(stack.isEmpty()); //輸出false
添加一個新的元11
調用size()
方法,長度爲3
有數據。不爲空
stack.pop();
console.log(stack.size()); //輸出2
stack.print(); //輸出[5, 8]
移除一個元素,長度爲2