2011-07-15 11 views
0

だから、スタック1をスタック2にスタックするには、stack1.reverseStack(stack2)を使用してスタック1をリバースする方法を記述する必要があります。私はstack1を破壊することなくこれを行う必要があります。これは私がこれまで持っていたものです...Java - 元のスタックを破壊せずにあるスタックを別のスタックに戻すメソッドを作成するにはどうすればよいですか?

これは機能します。私はstack1を破壊しない方法を見つけることができません。私はコピーのスタックを作成し、それを使用することを考えましたが、メソッド内でstack1をコピーする方法を理解することはできません。

+1

を、これは宿題の質問ですか?もしそうなら、そのようにタグ付けする必要があります。 – Charlie

+0

私の悪いです。タグ付き。 –

答えて

1

のthatsが許可されている場合は、中間スタックを使用してこれを行うことができます -

public void reverseStack(StackClass otherStack) 
{ 
    StackClass newStack = new StackClass(); 

    StackObj obj = null; 
    while ((obj = this.pop()) != null) { 
       otherStack.push(obj); 
       newStack.push(obj); 
    } 

    // Now push back from newStack to this stack 
    while ((obj = newStack.pop()) != null) { 
      this.push(obj); 
    } 
} 
+0

ああ。私は "StackObj"を持っていないが、私はstack1を呼び出すために "this"キーワードが欠けていたと思う。私はちょうど追加しました: StackClass newStack = new StackClass(); newStack.copyStack(this); とし、newStackからコピーしてポップするように変更しました。本当にありがとう! –

+0

@Michael C - あなたは大歓迎です。 – Kal

関連する問題