栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

栈和队列的过程化表示(JavaScript描述)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

栈和队列的过程化表示(JavaScript描述)

1. 栈的过程化表示
function stack() {
  let top = () => null;
  return {
    push: (a) => {
      let prevPop = top;
      top = () => {
        top = prevPop;
        return a;
      }
    },
    pop: () => top()
  }
}

使用示例:

var s1 = stack()
s1.push(1)
s1.push(2)
s1.push(3)
s1.pop() //get 3
s1.pop() //get 2
2. 队列的过程化表示
function queue() {
  let head = null
  return {
    add: (a) => {
      let nextFun = null;
      let newFun = (f) => {
        if (f) {
          (nextFun == null) ? (nextFun = f) : nextFun(f)
        } else {
          head = nextFun
          return a
        }
      }
      (head == null) ? (head = newFun) : head(newFun)
    },
    remove: () => head ? head(null) : null
  };
}

使用示例:

var q = queue();
q.add(1)
q.add(2)
q.add(3)
q.remove() //get 1
q.remove() //get 2
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992166.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号