首页 > 其他分享 >JS 模拟 栈结构

JS 模拟 栈结构

时间:2023-06-07 14:35:06浏览次数:31  
标签:el arr return get JS ans capacity 模拟 结构

Code:

/**
 * 栈结构(基于动态数组)
 * @class
 */
var AStack = (function() {
  /**
   * 栈容器
   * @type {DArray}
   */
  let arr;

  /**
   * 内部栈类
   * @class
   */
  class _AStack {
    /**
     * 构造器
     * @constructor
     * @param {number} [capacity] 
     */
    constructor(capacity) {
      arr = new DArray(capacity);
    }

    /**
     * 获取元素个数
     * @return {number} 
     */
    get_size() {
      return arr.get_size();
    }

    /**
     * 获取容器的容量
     * @return {number} 
     */
    get_capacity() {
      return arr.get_capacity();
    }

    /**
     * 判断栈是否为空
     * @return {boolean} 
     */
    is_empty() {
      return arr.is_empty();
    }

    /**
     * 推入新元素入栈
     * @param {*} el 
     */
    push(el) {
      arr.insert_to_tail(el);
    }

    /**
     * 弹出栈顶元素
     * @return {*}
     */
    pop() {
      return arr.remove_tail();
    }

    /**
     * 查看栈顶元素
     * @return {*} 
     */
    peek() {
      return arr.get_tail();
    }

    /**
     * 字符串化输出
     * @return {string}
     */
    to_string() {
      const n = arr.get_size();
      let ans = `Stack: [${n > 0 ? arr.get(0) : ''}`;
      for (let i = 1; i < n; i++) {
        ans += (',' + arr.get(i));
      }
      ans += ('] top');

      return ans;
    }
  }
  
  return _AStack;
})();

注:DArray类的实现(代码),请点击 这里

 

标签:el,arr,return,get,JS,ans,capacity,模拟,结构
From: https://www.cnblogs.com/fanqshun/p/17463191.html

相关文章

  • 直播app开发搭建,web前端JS中的继承方式
    直播app开发搭建,web前端JS中的继承方式ES5//ES5中的写法一   functionPhone(color){    this.color=color;    this.show=function(){      console.log("你喜欢看的颜色是:"+this.color);    }  }  functionVivo(color......
  • 线程安全问题:模拟取钱案例
       packageKarl.Demo.money;publicclassTest{publicstaticvoidmain(String[]args){Accountacc=newAccount(100000);newDrawThread(acc,"小明").start();newDrawThread(acc,"小红").start();}}......
  • 【锐格】数据结构-实验-二叉树
    7075#include<iostream>#include<cstdio>usingnamespacestd;typedefstructTNode{chardata;structTNode*lchild,*rchild;}BiNode,*BiTree;BiTreeT;voidcreateTree(BiTree&T){charch;cin>>ch;if(ch==&#......
  • 【锐格】数据结构-实验-图
    7039#include<iostream>#include<cstdio>usingnamespacestd;constintMAX_NUM=100;intw;intmark[MAX_NUM];typedefintEdgeData;typedefstructNode{intdest;EdgeDataweight;//边权structNode*next;//nextroute}EdgeNode;......
  • 【NEFU】数据结构阶段二机试代码
    个人拙见,难免有不足之处,望大佬们斧正P1#defineMAXNODE64#include<stdio.h>#include<stdlib.h>typedefstructNode//边的信息{intadjvex;structNode*next;}ArcNode;typedefstructVNode//顶点的信息{intdata;ArcNode*firstarc;}Ve......
  • 【数据结构】图的基本操作
    #include<iostream>#include<cstdio>#include<stack>#include<queue>#include<cstring>constintMAX_SUM=110;usingnamespacestd;typedefstructArcNode{intadj;structArcNode*nextarc;}ArcNode;typedefstruct......
  • JS 模拟 Java 动态数组(类)
     Code:/***动态数组*@class*/varDArray=(function(){/***数据数组*@type{*[]}*/letdata;/***数组中的元素个数*@type{number}*/letsize;/***调整数组容器大小*@param{number}new_capacity*/co......
  • 在ubuntu上后台启动nodejs、使用pm2启动多个nodejs,
    前言很久以前淘到了一个非常简易的nodejs(聊天室)的源码,今天想把他放到我的ubuntu(server20.10)上。一、正文如果直接使用指令nodeapp.js,退出终端的时候会报错,可以使用pm2来实现后台运行!1.安装node.js和npmapt-getinstallnodejsapt-getinstallnpm安装好了之后可以使用whereisn......
  • JS基础语法(一)
    javascript简介javascrpit是是一种轻量级的编程语言,常用于web前端开发。另外js还可以用来写node.js类型的服务和工具,在测试web项目的时候需要了解。  变量js定义变量有3种方式:var、const、let,3者的区别:在2015年以前,使用var关键字来声明JavaScript变量。在2015后......
  • json
    //查询时间偏移select*fromcoinerwherecreated_at+interval'8hour'>'2023-01-1300:00:00'//jsonb查询attribute.Award.type='ttc'attribute->'Award'->>'type'='ttc//时间偏移去重分组sel......