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

Java:如何将堆栈的伪代码转换为数组,java,arrays,directed-graph,Java,Arrays,Directed Graph,如何将以下伪代码转换为数组而不是堆栈。该算法旨在构造给定特定输入的有向图: 从右到左扫描堆栈上的调用符号,直到顶部出现两个连续的节点符号 在堆栈上弹出这两个节点符号和它们正下方的“*”。从第一个符号到第二个符号绘制边 按下堆栈上的第一个符号 继续步骤1-3,直到公式处理完毕 以下是一个输入和输出示例: 输入: ***ABCD *AB, *AC, *AD 输出: ***ABCD *AB, *AC, *AD “*”表示一条边 所有输入都将使用扫描仪完成。有限大小的堆栈可以使用数组和“堆栈索引

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

  • 从右到左扫描堆栈上的调用符号,直到顶部出现两个连续的节点符号
  • 在堆栈上弹出这两个节点符号和它们正下方的“*”。从第一个符号到第二个符号绘制边
  • 按下堆栈上的第一个符号
  • 继续步骤1-3,直到公式处理完毕
  • 以下是一个输入和输出示例:

    输入:

    ***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
    对于陈述,这大概是你需要寻找的,当然,还有更多的细节需要研究。尽管如此,你还是可以自己尝试一下,当你有疑问的时候,寻找一些资源,比如