Определить первый узел в связанном списке - PullRequest
0 голосов
/ 25 мая 2011

Если последний узел связанного списка подключен к первому узлу, он создает кольцо. Тогда как бы вы определили, какой из узлов в связанном списке является первым и последним?

Ответы [ 5 ]

5 голосов
/ 25 мая 2011

Ты бы не стал.Если это кольцо, то первое и последнее не имеют смысла.Любой узел может быть первым или последним.

Если вы определили «первым» как «первым создан», то вам, вероятно, понадобится добавить некоторую информацию о последовательности в узлы, чтобы иметь возможность узнать это.

3 голосов
/ 25 мая 2011

То, что вы описываете, является циклически связанным списком. Можно узнать как первый, так и последний элемент списка, основываясь только на ведении последнего узла. Логически это требует, чтобы его преемник был первым узлом.

В википедии есть немного больше об этом: https://en.wikipedia.org/wiki/Linked_list#Circularly_linked_list

3 голосов
/ 25 мая 2011

Предположительно, будет указатель на первый узел связанного списка (вам нужен способ ввода списка).Кроме того, в этом случае удобно поддерживать указатель на последний узел в списке.

Если вы более конкретно знаете, что вам нужно знать, я могу быть более полезным.

2 голосов
/ 25 мая 2011

Если вы пытаетесь реализовать круговой список, посмотрите здесь http://en.wikipedia.org/wiki/Linked_list#Circularly_linked_list

1 голос
/ 13 июля 2011

Когда вы создаете Linkedlist, сохраняете адрес первого узла в переменной (желательно закрытой), чтобы в любой момент времени вы могли сравнить этот адрес с адресом текущего узла

...