JS实现栈结构

来源:互联网 发布:洪都660所知乎 编辑:程序博客网 时间:2024/06/16 08:12

简述

栈,是一种遵从后进先出(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);