原生JS实现栈结构

1. 前言

栈,是一种遵从后进先出(LIFO,Later-In-First-Out)原则的有序集合。新添加的元素都保存在栈的一端,称作栈顶,另一端叫做栈底。在栈中,新元素都靠近栈顶,旧元素都靠近栈底。

2. 功能说明

  1. push(value):添加一个新元素到栈顶
  2. pop():移除栈顶的元素,同时返回该元素
  3. peek():获取栈顶的元素
  4. isEmpty():判断栈是否为空。是返回true,否返回fallse
  5. clear():清空栈里的元素
  6. 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

(完)

原文地址:https://www.cnblogs.com/wangjiachen666/p/9462931.html