Что здесь «дальше»? Пожалуйста, объясните, как здесь работает рекурсия? Спасибо
typedef struct node {
int val;
struct node * next;
} node_t;
Что здесь «дальше»? Пожалуйста, объясните, как здесь работает рекурсия? Спасибо
typedef struct node {
int val;
struct node * next;
} node_t;
next
— это указатель с именем next
на struct node
.
Определение является рекурсивным, потому что вы используете ссылку на то, что вы определяете внутри определения. Из Википедии
рекурсивный тип данных (также известный как рекурсивно определенный, индуктивно определенный или индуктивный тип данных) — это тип данных для значений, которые могут содержать другие значения того же типа.
Это все равно, что сказать, что node_t
— это тип данных, состоящий из struct
, который имеет два поля: одно — это int
, называемое val
, другое, называемое программистом next
, является указателем на node_t
(вот рекурсивное определение).