(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