реализация структуры связанного списка - PullRequest
0 голосов
/ 31 мая 2011

Когда я читал о связанном списке, я узнал, что структура для связанного списка имеет вид

Struct node{           
   Struct node *next;  
   int value;  
}

Почему следующий узел Struct *? Почему это не может быть просто целочисленный указатель? Как ниже

Struct node{   
   int *next;  
   int value;  
}

почему это не может содержать адрес следующего узла? Кто-нибудь может дать мне объяснение?

Ответы [ 2 ]

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

Это фактически то, что делает указатель (*next). Он содержит адрес чего-то еще. Определение типа описывает что это что-то еще (в данном случае struct node). В противном случае приложение не будет знать, сколько байтов нужно прочитать и как интерпретировать данные.

Подробнее об указателях .


Btw. int *next будет содержать адрес целого числа.

1 голос
/ 31 мая 2011

Почему узел Struct * следующий?Почему это не может быть просто целочисленный указатель?

Потому что тогда вы будете указывать на адрес следующего целого числа.Это может быть использовано для извлечения значения следующего целого, но не более того, так что в дальнейшем вы застрянете.

Соединяя узлы вместе, которые содержат целочисленные значения, вы можете проходить узлы иполучить значения типа int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...