0

このメソッドは、アイテムが逆になった現在のスタックのコピーを返すことになっています。

public LinkedStack<E> reversed()
{
    LinkedStack<E> that= new LinkedStack<E>();
    if(this.isEmpty()==true){
        return this;
    }
    else{
        while(this.isEmpty())//changed from this.isEmpty()==true
            {
            Node<E> snode=this.top;
            that.push(snode.getData());
            this.pop();
            snode=snode.getLink();
                    /*
                      that.push(pop()); works perfectly
                    */

            }
        return that;
        }
    }

更新 OK 答えの1つは、私を解決策に近づけるようです。メソッドで作成されたスタックに対してのみ機能します。私が抱えている問題は、スタックのコピーthisを返すことができるように、このスタックにリンクすることです。リンクされたスタックを使用しています。

4

2 に答える 2

3

なぜだめですか

while(!isEmpty()) {
   revertStack.push(pop());
}

同時に、元のループ、特に最初の行を見て、問題の原因を確認してください

于 2013-10-07T00:21:09.223 に答える