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为链表头。 |
|