Узел связанного списка с указателем на структуру в C - PullRequest
0 голосов
/ 24 января 2020

Я новичок в C программировании. Познакомьтесь со структурными указателями и списками linekd. Я наткнулся на концепцию узла связанного списка с указателем на структуру.

typedef struct
{
   string name, surname;
   int matriculation_num;
}Student_typedef;

typedef struct
{
   Tstudent* student;
   Node_typedef* next;
} Node_typedef;

Может кто-нибудь сказать мне, что именно является целью Node_typedef. Где такие реализации полезны? Любая полезная ссылка очень ценится.

1 Ответ

0 голосов
/ 24 января 2020

Два показанных определения типа структуры отделяют хранимые данные от механизма хранения.

Вы можете видеть, что Student_typedef имеет только элементы, которые относятся к информации, подлежащей хранению, но ни один из них не относится к хранению. Цель состоит в том, чтобы иметь механизм, который может хранить множество этой структуры данных.

С другой стороны, Node_typedef не содержит никакой информации для хранения, только один указатель на полные данные. Если структура информации, подлежащей хранению, изменится (хотя все равно будет отражена идентичным идентификатором типа Student_typedef), то ничего об этом механизме хранения не придется менять.

Или описать его с другой стороны Угол зрения: два разработчика, работающие над базой данных студентов, должны будут только согласиться, что вся необходимая информация для каждого студента находится внутри Student_typedef. Тогда один разработчик может обрабатывать функции программирования для ввода или редактирования данной структуры (на основе указателя на структуру, предоставляемую хранилищем), тогда как другой разработчик может обрабатывать аспекты хранилища, такие как добавление новой структуры для заполнения, удаление, оптимизация памяти, et c.

Такие методы определения интерфейса и абстракции частей кода необходимы для эффективной обработки больших проектов.

...