Как установить элемент в списке без использования методов LinkedList - PullRequest
0 голосов
/ 09 марта 2019

Для домашней работы я работаю над написанием класса LinkedList, который заменяет методы LinkedList.Я работаю над методом "set".

Вот что у меня есть для метода set ().Он принимает int index и X item в качестве параметров.Голова узла находится в переменной с именем first.(Весь класс обобщен.)

Node<X> p = new Node<X>();
if(index < 0 || index > size()-1){
    throw new Bonfire();
}
int count = 0;
while(count != index){
    p = p.next;
    count++;
}
if(count == index){
    p.item = item;
}

Класс узла:

public class Node<T>
{
    T item;
    Node<T> next;
}

Когда я запускаю свой код в сравнении с некоторым имеющимся у меня тестовым кодом, он не проходит тест.

Код теста:

LList<String> b = new LList<String>();
b.add("Hello");
b.add("Bye");
b.set(0, "Bonjour");
assertEquals("Bonjour", b.get(0));

Неудачный тест Причина: org.junit.ComparisonFailure: expected:<[Bonjour]> but was:<[Hello]>

(методы add (), size () и get () работают правильно.)

Итак, мой вопрос, как мне получить это, чтобы правильно установить элемент?Из этого кода и из-за того, почему он не проходит тест, похоже, что он вообще ничего не устанавливает.Если вам нужна дополнительная информация от меня, не стесняйтесь спрашивать меня.Ценю помощь.Спасибо!

1 Ответ

1 голос
/ 09 марта 2019

Все, что мне нужно было сделать, это изменить Node<X> p, чтобы сделать его Node<X> p = first;.

...