此方法應該返回當前堆棧的副本,並且項目反轉。反轉方法無法堆棧
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;
}
}
更新 確定答案的人似乎使我更接近的解決方案。它可以工作,但只適用於在方法中創建的堆棧。我遇到的問題是將其鏈接到此堆棧,以便我可以返回this
堆棧的副本。我正在使用鏈接堆棧。
您不需要使用'this.',除非有一個具有相同名稱的局部變量。而'== true'是不必要的。 – Dukeling
在一種情況下返回原來的而不是新的對象(空的)而不是另一種是不可取的。如果有人修改了他們得到的副本,該怎麼辦? – clwhisk