У меня есть два предложения.
Во-первых, насчет «это предыдущий или следующий элемент»: это зависит от вашей структуры данных. Обычно это следующий элемент.
Во-вторых, я бы рекомендовал использовать указатель или ссылку. (И ваш синтаксис C ++ неверен: this
является указателем, и оператор new
также возвращает указатель. Не уверен, что вы используете C ++, поскольку вы не указали язык.)
Так, например:
class Node {
Object data;
public:
Node *next;
Node (Object pData, Node *pLink) {
this->data = pData;
this->next = pLink;
}
}
Это была бы более правильная структура. Тогда вы можете сделать:
Node *n3 = new Node(new Integer(2), null);
Node *n2 = new Node(new Integer(1), n1);
Node *n1 = new Node(new Integer(3), n2);
или просто
Node *n1 = new Node(new Integer(3), new Node(new Integer(1), new Node(new Integer(2), NULL)));
Тогда вы можете выполнить итерацию по списку следующим образом:
for (Node *current = n1; current != NULL; current = current->next)
{
// do something with the current element
}
Надеюсь, это поможет!
Если вы используете современный язык, в stl C ++ уже есть предварительно созданные структуры связанных списков, в .NET - в System.Collections.Generic, и я уверен, что есть также аналог Java.