对于链表的优缺点,我们对比数组可以说出一些,但在随机存储的情况下,我们会选择链表来处理,而我们使用双向链表时,经常会定义成如下形式:
struct list_node {
TYPE data;
struct list_node *prev,*next;
};
相对应的链表结构如下:
对于该数据结构定义,存在一个局限,整个结构中只能有一个双向循环链表,而不能存在多个,并且链表的操作只能针对该数据结构操作,没能通用,而在Linux Kernel(下面以3.0.8版本为例)中则把链表与数据域分开了,实现通用链表结构及操作,其定义存在于include/linux/types.h文件中&