简述
栈,是一种遵从后进先出(LIFO,Later-In-First-Out)原则的有序集合。新添加的元素都保存在栈的一端,称作栈顶,另一端叫做栈底。在栈中,新元素都靠近栈顶,旧元素都靠近栈底。
代码说明
首先,先创建一个类表示栈,并且初始化一个空数组,用来保存栈里的元素
class Stack {
constructor() {
this.items = [];
};
}
接着,给这个栈声明一些方法:
1.push(value):添加一个新元素到栈顶
2.pop():移除栈顶的元素,同时返回该元素
3.peek():获取栈顶的元素
4.isEmpty():判断栈是否为空。是返回true,否返回fallse
5.clear():清空栈里的元素
6.size():获取栈里元素的个数
具体代码
class Stack {
constructor() {
this.items = [];
};
push(value) {
this.items.push(value);
};
pop() {
return this.items.pop();
};
peek() {
return this.items[this.items.length - 1];
};
isEmpty() {
return this.items.length === 0;
};
clear() {
return this.items = [];
};
size() {
return this.items.length;
}
}
测试
var stack = new Stack();
stack.push(5);
stack.push(6);
stack.push(7);
console.log(stack.pop());
console.log(stack.peek());
console.log(stack.isEmpty());
console.log(stack.size());
console.log(stack.clear());
console.log(stack.size());
console.log(stack);