-3

基本的にスタックの内容を意味する 2 つのスタックを交換したかったのです。C#、Java、またはCでそれを行うにはどうすればよいですか

4

1 に答える 1

6

参照を交換することはできますか?つまり、スタック s1 と s2 が与えられた場合:

Stack<T> temp = s2;
s2 = s1;
s1 = temp;

スタックの内容を切り替える最も簡単な方法は、おそらく別のスタックを使用することです。

int secondSize = s1.size();

while(!s1.isEmpty()){

    holdStack.push(s1.pop());
}
while(!s2.isEmpty()){
    holdStack.push(s2.pop());
}

for(int i = 0; i < secondSize; i++){
    s1.push(holdStack.pop());
}
while(!holdStack.isEmpty()){
    s2.push(holdStack.pop());
}
于 2012-10-25T06:11:12.540 に答える