2.双向循环链表的操作

函数名

功能

函数形成

参数

描述

list_add

增加一个新元素

void list_add (struct list_head * new, struct list_head * head)

new为要增加的新元素,head为增加以后的链表头

在指定的头元素后插入一个新元素,用于的操作。

list_add_tail

增加一个新元素

void list_add_tail (struct list_head * new, struct list_head * head);

 

new为要增加的新元素,head为增加以前的链表头

在指定的头元素之前插入一个新元素,用于队列的操作。

list_del

从链表中删除一个元素

void list_del (struct list_head * entry);

entry为要从链表中删除的元素

 

list_del_init

从链表删除一个元素,并重新初始化链表

void list_del_init (struct list_head * entry)

 

 

entry为要从链表中删除的元素

 

list_empty

测试一个链表是否为空

int list_empty (struct list_head * head)

head为要测试的链表

 

 

list_splice

把两个链表合并在一起

void list_splice (struct list_head * list, struct list_head * head)

list为新加入的链表,head为第一个链表

 

list_entry

获得链表中元素的结构

list_entry ( ptr, type, member)

ptr为指向list_head的指针,type为一个结构体,member为结构type中的一个域,其类型为list_head

 

list_for_each

扫描链表

list_for_each ( pos, head)

pos为指向list_head的指针,用于循环计数,head为链表头。