zoukankan      html  css  js  c++  java
  • 原生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

    (完)

  • 相关阅读:
    URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'
    Shiro授权管理
    Unable to execute 'doFinal' with cipher instance
    Shiro登录认证
    Shiro权限管理框架
    如此工作
    https真的安全吗,加密登录其实不简单
    奔波中,还是否记得来时路?
    最是伤情
    奈何桥上经过的地方,看醒了多少人
  • 原文地址:https://www.cnblogs.com/wangjiachen666/p/9462931.html
Copyright © 2011-2022 走看看