Java:如何将堆栈的伪代码转换为数组

标签 java arrays directed-graph

如何将以下伪代码转换为数组而不是堆栈。该算法旨在构造给定特定输入的有向图:

  1. 从右到左扫描公式调用堆栈上的符号,直到 2 个连续的节点符号出现在顶部。
  2. 从堆栈中弹出这 2 个节点符号和它们下方的“*”。从第一个符号到第二个符号画一条边。
  3. 将第一个符号压入堆栈。
  4. 继续执行步骤 1-3,直到处理完公式。

这是一个示例输入和输出:

输入:

***ABCD

输出:

*AB, *AC, *AD

'*'代表一条边

所有输入都将使用扫描仪完成。

最佳答案

可以使用数组和“堆栈索引”的索引对有限大小的堆栈进行建模。

-1 开始堆栈索引。在推送操作中,递增堆栈索引,并将值存储在数组的相应索引处。在弹出操作中,使用堆栈索引处的值,并在获取值后递减索引。要访问堆栈的顶部,请读取堆栈索引处的项目。

关于Java:如何将堆栈的伪代码转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293180/

相关文章:

java - 启动 Minecraft 时出现 "Picked up _JAVA_OPTIONS: -Xmx512M"错误

arrays - 根据计数进行逐元素数组复制

c - C循环中2个数组之间的加速复制

ruby - 如何使用第二个数组中的值对对象数组进行排序

javascript - D3 js Force Directed Graph - 突出显示两点之间的路径

java - 邻接矩阵 DFS 遍历以在有向图 (Java) 中查找从 x 到 y 的路径数

java - 尝试使用 Java 中的可执行文件运行文件

java - GWT 和 SQL - 没有合适的驱动程序

java - log4j 按需创建文件

java - 有向图的深度优先遍历