鏈表定義在頭文件

鏈表數據結構

定義和初始化鏈表的頭部:

代碼

定義空鏈表:

空鏈表

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

因此,空鏈表是頭指針指向其自身的鏈表: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()一起使用迭代從給定元素到鏈表末尾的鏈表:

請支持一下山區留守採茶婦女和兒童:(點擊 瞭解更多)

查看原文 >>
相關文章