Java:如何将堆栈的伪代码转换为数组
如何将以下伪代码转换为数组而不是堆栈。该算法旨在构造给定特定输入的有向图:Java:如何将堆栈的伪代码转换为数组,java,arrays,directed-graph,Java,Arrays,Directed Graph,如何将以下伪代码转换为数组而不是堆栈。该算法旨在构造给定特定输入的有向图: 从右到左扫描堆栈上的调用符号,直到顶部出现两个连续的节点符号 在堆栈上弹出这两个节点符号和它们正下方的“*”。从第一个符号到第二个符号绘制边 按下堆栈上的第一个符号 继续步骤1-3,直到公式处理完毕 以下是一个输入和输出示例: 输入: ***ABCD *AB, *AC, *AD 输出: ***ABCD *AB, *AC, *AD “*”表示一条边 所有输入都将使用扫描仪完成。有限大小的堆栈可以使用数组和“堆栈索引
***ABCD
*AB, *AC, *AD
输出:
***ABCD
*AB, *AC, *AD
“*”表示一条边
所有输入都将使用扫描仪完成。有限大小的堆栈可以使用数组和“堆栈索引”的索引进行建模
在
-1
处启动堆栈索引。在推送操作中,增加堆栈索引,并将值存储在数组的相应索引处。在pop操作中,使用堆栈索引处的值,并在获取值后减小索引。要访问堆栈顶部,请读取堆栈索引处的项。基本上,您必须使用FIFO属性对数组执行操作
public ArrayStack( )
{
theArray = new String[InitialSize];
topOfStack = -1;
}
每次向数组(push)添加元素时,您都执行topOfStack++编码>并将元素插入阵列的“topOfStack”
位置。通过执行topOfStack++
可以跟踪成为堆栈新顶部的阵列位置
执行pop
操作时,必须检查数组是否为空,返回array[topOfStack]
上的元素,然后执行topOfStack--代码>。因为顶部现在是阵列上的上一个位置
如果由于堆栈已满而需要为数组提供更多空间(topOfStack==InitialSize)
则必须创建另一个具有更多空间的数组,例如:
private void doubleArray( )
{
String [] newArray = new String[ theArray.length * 2 ];
for( int i = 0; i < theArray.length; i++ )
newArray[ i ] = theArray[ i ];
theArray = newArray;
}
private void doubleArray()
{
String[]newArray=新字符串[theArray.length*2];
for(int i=0;i
对于陈述,这大概是你需要寻找的,当然,还有更多的细节需要研究。尽管如此,你还是可以自己尝试一下,当你有疑问的时候,寻找一些资源,比如