1. 前言
栈,是一种遵从后进先出(LIFO,Later-In-First-Out)原则的有序集合。新添加的元素都保存在栈的一端,称作栈顶,另一端叫做栈底。在栈中,新元素都靠近栈顶,旧元素都靠近栈底。
2. 功能说明
- push(value):添加一个新元素到栈顶
- pop():移除栈顶的元素,同时返回该元素
- peek():获取栈顶的元素
- isEmpty():判断栈是否为空。是返回true,否返回fallse
- clear():清空栈里的元素
- size():获取栈里元素的个数
3. 代码实现
首先,先创建一个类表示栈,并且初始化一个空数组,用来保存栈里的元素
class Stack { constructor() { this.items = []; }; }
接着,在这个栈类中实现所需要的功能:
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; } }
4. 测试
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);
5.完整代码
完整代码请戳☞☞☞Stack.js
(完)