public static void main(String[] args) {
// Создаем элементы списка
A1 elementRoot = new A1();
elementRoot.a = 0;
A1 element1 = new A1();
element1.a = 1;
A1 element2 = new A1();
element2.a = 2;
A1 element3 = new A1();
element3.a = 3;
A1 element4 = new A1();
element4.a = 4;
A1 element5 = new A1();
element5.a = 5;
A1 element6 = new A1();
element6.a = 6;
A1 element7 = new A1();
element7.a = 7;
// Проставляем ссылки для организации СВЯЗНОГО списка
elementRoot.next = element1;
element1.next = element2;
element2.next = element3;
element3.next = element4;
element4.next = element5;
element5.next = element6;
element6.next = element7;
element7.next = null; // Последний элемент ни на что не ссылается
// Динамическое добавление элемента в список (1-й вариант)
A1 element8 = new A1();
element8.a = 8;
addElement1(elementRoot, element8);
// Динамическое добавление элемента в список (2-й вариант)
addElement2(elementRoot, 9);
// Выводим значения элементов списка
A1 top = elementRoot;
while (top.next != null) {
System.out.println(top.a);
top = top.next;
}
System.out.println(top.a);
}
/**
* Метод для динамического добавления элемента в список задача метода - найти
* последний элемент списка и прикрепить к нему новый (который станет последним)
*/
static void addElement1(A1 root, A1 newElement) {
// Начинаем искать последний элемент списка от корня
A1 top = root;
// В цикле проходим весь список, пока не достигнем конца (next=null)
while (top.next != null) {
top = top.next;
}
// прикрепляем к последнему элементу списка (top) новый (newElement)
top.next = newElement;
newElement.next = null;
}
// Второй вариант метода addElement. Создание нового элемента переносим в метод
static void addElement2(A1 root, int newValue) {
// Создаем новый элемент и присваиваем его члену a переданное через аргумент значение newValue
A1 newElement = new A1();
newElement.a = newValue;
A1 top = root;
while (top.next != null) {
top = top.next;
}
top.next = newElement;
newElement.next = null;
}
}
class A1 {
int a;
A1 next;
}