Data structures 链表的节点应存储谁的地址:其他节点,或以节点作为字段的数据结构?

Data structures 链表的节点应存储谁的地址:其他节点,或以节点作为字段的数据结构?,data-structures,linked-list,linux-kernel,Data Structures,Linked List,Linux Kernel,了解Linux内核: Linux内核定义了列表头数据结构,其 字段next和prev表示一个 分别是泛型双链表元素。重要的是 但是,请注意,列表头字段中的指针存储 其他列表头字段的地址,而不是 列表头结构所在的整个数据结构 包括;见图3-3(a) 为什么列表头字段中的指针存储其他列表头字段的地址,而不是包含列表头结构的整个数据结构的地址 给定指向list\u head对象的指针,如何获取包含list\u head对象的数据结构(如“数据结构1”)的对象?比如说, 如果是OO语言,是否列表头字段

了解Linux内核:

Linux内核定义了列表头数据结构,其 字段next和prev表示一个 分别是泛型双链表元素。重要的是 但是,请注意,列表头字段中的指针存储 其他列表头字段的地址,而不是 列表头结构所在的整个数据结构 包括;见图3-3(a)

为什么列表头字段中的指针存储其他列表头字段的地址,而不是包含列表头结构的整个数据结构的地址

给定指向
list\u head
对象的指针,如何获取包含
list\u head
对象的数据结构(如“数据结构1”)的对象?比如说,


如果是OO语言,是否列表头字段在包含列表头结构的数据结构中可能是私有的?因此,与其他列表头字段的地址相比,列表头字段中的指针存储包含该列表头结构的整个数据结构的地址是否更合理?

列表头
存储指向下一个/上一个列表节点的指针。 一个数据结构可以使用多个
list\u head
元素放置在多个列表中。 处理代码“知道”这些元素中的哪一个放在给定的列表中,并且可以使用将指针从指向节点的指针恢复到指向数据结构的指针

为什么列表头字段中的指针存储其他字段的地址 列出头字段,而不是整个数据的地址 包含列表头结构的结构

因为它在逻辑上是正确的,而且更容易实现。迭代列表时,不需要知道类型。此外,列表头未嵌入任何结构中。当列表为空时,它应该指向什么

给定一个指向列表头对象的指针,如何获取 数据结构(如“数据结构1”),其中包含 列出你的头对象

使用宏