【问题标题】:How to create a multi-dimensional stack in Javascript?如何在 Javascript 中创建多维堆栈?
【发布时间】:2019-06-05 08:19:51
【问题描述】:

在一维堆栈中,我可以在下面实现这段代码

// Create 1D stack
var stack = new Array(1000)
stack.push(23)
stack.pop()

但是对于二维堆栈和多维堆栈,如何实现这个可以做push和pop功能的堆栈呢?

【问题讨论】:

标签: javascript stack


【解决方案1】:

这是创建 2D 堆栈的示例,

var s = new Array(100);
for( let i=0;i<100;i++) {
  s[i] = [];
  for( let j=0; j<100; j++) {
    s[i][j] = i*j;
  }
}

console.log(s);

【讨论】:

  • 这是一个普通的二维数组,究竟是什么让它成为一个堆栈?
  • 这类似于堆栈,也允许进行推送和弹出等操作。
  • @AlonYampolski 与使数组成为堆栈的相同吗? OP 已经将一维数组视为堆栈,因此多维数组也将具有与多维堆栈相同的属性是合乎逻辑的。
  • @VLAZ 我想说的是我希望多维堆栈是自我管理的,这意味着它将具有如下功能:multiStack.push() 和 multiStack.pop()。 multiStack[n].push() 和 multiStack[n].pop() 不一样
  • @AlonYampolski 我不知道这是一个硬性要求。事实上,我搜索了“多维堆栈”并看到人们谈论数组。你的建议听起来......就像一个堆栈。如果接口只是pushpop,那么你并不真正关心下面的实现是什么。如果您想明确说明您在哪里添加和删除元素,那么您真的不能拥有一个自我管理的结构。如果你不关心,那么你就不关心下面的实现是什么。除非你正在执行那个实现。
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
相关资源
最近更新 更多