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);
(完)
原生JS实现栈结构
原文地址:https://www.cnblogs.com/wangjiachen666/p/9462931.html