原生JS实现栈结构

Posted 难凉热血,码梦为生!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生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);

(完)



以上是关于原生JS实现栈结构的主要内容,如果未能解决你的问题,请参考以下文章

js实现栈结构

js 实现数据结构 -- 栈

js经常用到的代码片段

原生js实现TodoMVC

用js来实现那些数据结构(栈01)

原生JavaScript实现图片瀑布流效果,可更改配置参数 带完整版解析代码[waterFall.js]