Я пытаюсь создать пользовательскую структуру данных, наиболее похожую на список, для назначения.Я сделал класс Node:
class Node {
int data;
Node nextNode = null;
public Node(int data) {
this.data=data;
}
}
и класс DataStructure:
public class DataStructure {
private Node previousNode;
private Node StartingNode;
private boolean isEmpty = true;
public void AddNode(int data) {
if(isEmpty) {
isEmpty = false;
StartingNode = new Node(data);
previousNode = StartingNode;
}
else {
previousNode.nextNode = new Node(data);
previousNode = previousNode.nextNode;
}
}
private boolean isFirst = true;
int max = 0;
public int getMaxData(Node d) {
if(isFirst) {
isFirst = false;
max = d.data;
}
else {
if(d.data > max)
max = d.data;
if(d.nextNode != null)
getMaxData(d.nextNode);
}
return max;
}
}
Когда я пытаюсь запустить пример выше, список создается неправильно (из того, что ямогу сказать).Я думал, что, возможно, это как-то связано с сборкой мусора, но я считаю, что объекты узла все еще активны, так как на них ссылается переменная nextNode.
Это основной метод, который запускает пример:
public static void main(String [] args) {
DataStructure list = new DataStructure();
list.AddNode(5);
list.AddNode(15);
list.AddNode(12);
list.AddNode(3);
System.out.println(list.getMaxData(list.StartingNode));
}
Ожидаемый результат - число 15, которое будет напечатано, но я получаю только первый узел (5).Я попытался «отладить», добавив System.out.writeln (d.data) в начале getMaxData (), и я напечатал только 5, поэтому я считаю, что другие узлы не созданы.