【发布时间】:2016-12-14 09:07:46
【问题描述】:
This program 是与旧单链表不同的方法。我没有创建单个结构并保持下一个相同类型节点的指针作为结构的成员,而是使用了三个不同的结构,每个结构中都有一个普通的long nextaddress 成员来指向下一个节点的地址,因为指针也一样。
每个节点还有一个int flag 成员作为结构的第一项,而data 部分由于其可变长度而位于结构的末尾。
这三个结构是内置类型long、double和char的基本扩展。在访问结构时,我首先将节点的地址转换为int *,这样我就可以访问flag,而无需将地址完全转换为三个确定的结构。
然后分析flag,各种操作就搞定了。
所以这是我的问题。它可以称为有效链表吗?而且,它甚至是一个有效的数据结构吗?
【问题讨论】:
-
包含多个事物的链表节点完全没有问题。其实这是完全正常的。
-
我想如果那是你想要的就可以了。但是,为什么不让生活更轻松并拥有指向下一个节点的指针呢?如果您能够毫无问题地存储和访问数据,那么它就是一种有效的数据结构,只是不是很常见。
-
如果我保留一个指向下一个节点的指针,那么我将不得不保留指向每个结构的其他结构的所有指针,甚至还有另一个标志来确定哪个正在使用。这就是我使用这种策略的原因。 @RoadRunner
-
@TimBiegeleisen,感谢您的回答。你能举一个使用这种结构的实际例子吗?
-
当然,在我的脑海中,你可能有一个代表日志事件/对象的一些 C++ 类的列表。此类可以包含日志发生日期、日志内容和日志级别(例如调试、错误等)的成员。
标签: c data-structures linked-list singly-linked-list