链表定义在头文件

链表数据结构

定义和初始化链表的头部:

代码

定义空链表:

空链表

初始化要插入链表中的元素:

因此,空链表是头指针指向其自身的链表:p-> next = p-> prev = p。 如果链表不为空,则服务“list_empty()”返回0,否则返回非0:

判断空链表

list_add()在 链表的开头插入一个元素(即在指定的头部之后):

链表插入元素

list_add_tail()在链表的末尾插入一个元素(即在指定的头部之前):

链表尾部插入

list_del_init()从链表中删除一个元素并重新初始化该元素:

链表删除元素

list_move()将元素从其当前链表移动到另一个链表的开头:

list_move_tail()具有与list_move()相同的接口,但将元素从其当前链表移动到另一个链表的末尾。

list_splice()将链表附加到另一个列表。 list_splice_init()执行相同的操作,但重新初始化清空链表的头部。

当'list_head'结构嵌入到高级结构中时,可以通过list_entry()从'list_head'上的指针检索高级结构:

list_for_each()遍历从链表的开头到结尾的链表:

list_for_each_entry()是list_for_each()的扩展,因为它使用高级结构上的指针迭代链表:

list_for_each_entry_reverse()与list_for_each_entry()的作用相同,但是从结尾到开头遍历链表。

list_for_each_entry_continue()与list_prepare_entry()一起使用迭代从给定元素到链表末尾的链表:

请支持一下山区留守采茶妇女和儿童:(点击 了解更多)

查看原文 >>
相关文章