У меня была задача добавить элемент строки типа по индексу в двойном связанном списке. Я реализовал его как метод класса Double_list. Также у меня есть класс List_node.Добавить элемент в двойной связанный список
public void Add(String element, int index)
{
if(index < 0 || index > size)
{
throw new IndexOutOfBoundsException();
}
if(element == null)
{
throw new NullPointerException();
}
if(index == size)
{
this.Add(element);
}
else
{
List_node next_node = get_node(index);
List_node prev_node = next_node.prev;
List_node new_node = new List_node(element, prev_node, next_node);
next_node.prev = new_node;
prev_node.next = new_node;
size++;
}
}
public boolean Add(String element)
{
if(element == null)
{
throw new NullPointerException();
}
List_node last = tail.prev;
List_node new_node = new List_node(element, last, tail);
last.next = new_node;
last.prev = new_node;
size++;
return true;
}
private List_node get_node(int index)
{
int cur_index = 0;
List_node cur_node = head.next;
while(cur_index < index)
{
cur_node = cur_node.next;
cur_index++;
}
return cur_node;
}
Когда я добавить несколько элементов, размер списка увеличивается, но список отображается таким образом, как я добавил только один элемент. И когда я пытаюсь удалить элементы по индексу, который больше 0 из списка, я получаю NullPointerException. Можете ли вы мне помочь и сказать, пожалуйста, где я ошибся?
Вам нужно разместить больше своего кода - в частности, методы Add (element) и get_node (index). –
Можете ли вы добавить исключение, которое попадете на почту? – bradimus
Вам нужно увеличить размер после 'this.Add (element)'? – DSlomer64