This program - это другой подход к одному и тому же старому одиночному списку. Вместо создания единой структуры и сохранения указателя следующего узла того же типа, что и член структуры, я здесь использовал три разные структуры и простой член long nextaddress
в каждом, чтобы указать адрес следующего узла, поскольку указатели также делают то же самое.Может ли структура данных содержать несколько типов элементов?
Каждый узел также имеет элемент int flag
в качестве первого элемента структуры, а часть data
находится в конце структуры из-за своей переменной длины.
Эти три конструкции являются базовыми расширениями встроенных типов, long
, double
и char
. При обращении к структурам я сначала выбрал адрес узла как int *
, что дает мне доступ к flag
без полного наведения адреса на определенную структуру из трех.
Затем, анализируя flag
, выполняются различные операции.
Итак, вот мой вопрос. Можно ли назвать действительный связанный список? И, кроме того, это даже действительная структура данных?
Нет ничего плохого в узле связанного списка, содержащем несколько вещей. На самом деле это совершенно нормально. –
Я думаю, это прекрасно, если это то, что вы хотите. Однако почему бы просто не сделать жизнь проще и иметь указатель на следующий узел? Если вы можете хранить и получать доступ к данным без проблем, то это действительная структура данных, а не очень распространенная. – RoadRunner
Если я держу указатель на следующий узел, тогда мне придется держать все указатели других структур в каждой структуре и даже другой флаг, чтобы определить, что используется. Вот почему я использовал эту стратегию. @RoadRunner – Subhranil