Ответ 1
Да, но вы должны назвать структуру, чтобы вы могли ссылаться на нее.
typedef struct node_ {
char* name;
struct node_ * parent;
} node;
Имя node
объявляется только после того, как структура полностью определена.
Можно ли определить структуру с указателем на этот тип структуры? Я имею в виду:
typedef struct {
char* name;
node* parent;
} node;
Насколько я пробовал или читал, я не знаю, как это сделать или если это возможно.
Да, но вы должны назвать структуру, чтобы вы могли ссылаться на нее.
typedef struct node_ {
char* name;
struct node_ * parent;
} node;
Имя node
объявляется только после того, как структура полностью определена.
Вы можете использовать incomplete type
в typedef
:
typedef struct node node;
struct node {
char *name;
node *parent;
};
Я согласен... и деревья. Вам не нужно смотреть на него как на "яйцо и chiken", потому что определение типа всегда происходит до его создания. Таким образом, наличие переменной-члена одного и того же типа объекта просто сложно, когда вы начинаете смешивать два в вашей голове!
Да, это возможно.
Вот как делаются связанные списки!
Почему бы вам не попробовать? Вы должны поместить имя в структуру, и да, это способ работы рекурсивных структур данных.