Я попытался реализовать метод insert для кругового связанного списка. Я думаю, что у меня был некоторый успех.Циклический связанный список Узел ввода Java
Проблема: Когда я показываю список. Метод отображения будет циклическим, потому что каждая следующая переменная ссылки связана с ненулевым объектом узла. Поэтому голова никогда не будет нулевым объектом. Из того, что я вспоминаю об односвязном списке, head всегда указывает на первый узел в списке или на первый узел с данными внутри него.
Мое концептуальное понимание кругового связанного списка: Из того, что я могу понять, круговой связанный элемент похож на отдельный список, но с небольшим завихрением: следующая переменная хвостового объекта указывает на голову.
Я кодирую его, как показано диаграммой, предоставленной исходной ссылкой.
Источник: http://sourcecodemania.com/circular-linked-lists/
public void insert(String data)
{
Link link = new Link(data);
if(head == null)
{
head = link;
tail= link;
}
else
{
tail.next = link;
tail = link;
tail.next = head;
}
}
public void display()
{
// good implementation for display #2
while(head != null)
{
// System.out.println (head.data);
head = head.next;
}
}
Большой обходной путь, имея счетчик размера! – Nicholas
Рад знать, что это помогло. –