【发布时间】:2019-09-27 10:07:59
【问题描述】:
我正在学习数据结构,在做链表时,我在想除了 C 中的自引用结构之外,是否还有另一种类型的声明来实现链表。
这是我第一次需要在 C 中使用结构,每个人都只使用自引用结构来实现。我想知道是否有其他可能的方式来实现没有自引用结构的链表。
【问题讨论】:
-
C 中没有“引用”。对于链表,“节点”结构将至少有一个自身类型的指针。
-
我不认为有因为列表必须有一个数据元素“next”指向下一个列表元素,所以“列表指向列表指向...”所以它需要引用自身(也称为递归数据结构)。
-
有很多方法(我想到的第一个是在@RishikeshRaje 链接的问题中讨论的那个),但我怀疑有任何好的方法。使用自引用结构是一种强大而有用的技术,几乎每个人都同意这是实现链接数据结构(如树和列表)的正确方法。您是出于好奇而问,还是出于某种原因您觉得不能使用自引用结构?
-
@MayurK 在问题中,“自我参照”的含义与您说“自我类型指针”的含义相同。也就是说,结构的定义包括对结构的提及(即,它在声明自身时引用自身)。它显然不是用来表示 C++“参考”。
标签: c data-structures