これで、toString()を使って次のように印刷しようとしています:| 5 | 4 | 3 | topLinkedStackを走査してスタック全体を表示する
public String toString(){
String logString = "bottom|";
LLNode<T> node;
node = top;
while (node != null){
logString = logString + node.getInfo() + "|";
node = node.getLink();
return logString + "top";
}
return "Empty Stack";
}
スタック内の0個の要素と1個の要素で動作しますが、3個の要素すべてでテストケースが失敗します。
リンクされたリストの最初の2つのアイテムを取得する方法が失われました。 node = node.getLink();
はあなたをリスト内で前方へ移動させます。そのため、スタック内の最後の項目(上端)が3しか表示されず、ループが終了します。どのように後ろに行くのですか?
@Test
public void test_toString_on_a_stack_with_multiple_elements() {
stk1.push(5); stk1.push(4); stk1.push(3);
Assert.assertEquals("bottom|5|4|3|top", stk1.toString());
}
expected <bottom|5|4|3|top> actual <bottom|3|top>
問題が解決した場合は、回答を受け入れることができます。 –