list_add_tail()
来源:互联网 发布:python list 拆分 编辑:程序博客网 时间:2024/06/13 23:26
将new所代表的list_head插入head所索引的队列的尾部
将new所代表的list_head插入到next索引的双链表(next索引双链表的第一个节点)的尾部
next
new head----+----------------------------------------------+
| | |
| list_head | list_head list_head list_head |
| |---------| | |---------| |---------| |---------| |
+-->| *next | +--->| *next |-->| *next |-->| *next |---+
|---------| |---------| |---------| |---------|
| *prev | +--| *prev |<--| *prev |<--| *prev |<--+---prev
|---------| | |---------| |---------| |---------| |
| |
+--------------------------------------------+
+---------------------+
| next | (4)
new| head----+ +-----------------------------------------+
| | | |
+--+ list_head | list_head list_head list_head |
| |---------|(2) | |---------| |---------| |---------| |
+-->| *next |-----+--->| *next |-->| *next |-->| *next |---+
|---------| |---------| |---------| |---------|
+---| *prev |<---------| *prev |<--| *prev |<--| *prev |<--+---prev
| |---------| (1) |---------| |---------| |---------| |
| |
+------------------------------------------------------------------+
(3)
static inline void list_add_tail(struct list_head *new, struct list_head *head)
{
__list_add(new, head->prev, head);
}
{
__list_add(new, head->prev, head);
}
将new所代表的list_head插入到next索引的双链表(next索引双链表的第一个节点)的尾部
static inline void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next)
{
next->prev = new; //(1)
new->next = next; //(2)
new->prev = prev; //(3)
prev->next = new; //(4)
}
struct list_head *prev,
struct list_head *next)
{
next->prev = new; //(1)
new->next = next; //(2)
new->prev = prev; //(3)
prev->next = new; //(4)
}
next
new head----+----------------------------------------------+
| | |
| list_head | list_head list_head list_head |
| |---------| | |---------| |---------| |---------| |
+-->| *next | +--->| *next |-->| *next |-->| *next |---+
|---------| |---------| |---------| |---------|
| *prev | +--| *prev |<--| *prev |<--| *prev |<--+---prev
|---------| | |---------| |---------| |---------| |
| |
+--------------------------------------------+
+---------------------+
| next | (4)
new| head----+ +-----------------------------------------+
| | | |
+--+ list_head | list_head list_head list_head |
| |---------|(2) | |---------| |---------| |---------| |
+-->| *next |-----+--->| *next |-->| *next |-->| *next |---+
|---------| |---------| |---------| |---------|
+---| *prev |<---------| *prev |<--| *prev |<--| *prev |<--+---prev
| |---------| (1) |---------| |---------| |---------| |
| |
+------------------------------------------------------------------+
(3)
0 0
- list_add_tail()
- list_add_tail
- list_add_tail()
- list_add_tail()
- list_add_tail 添加双向链表结点讲解
- list_add_tail 双向链表实现分析 .
- list_add_tail 双向链表实现分析
- Android改变部分文字的字体大小
- 3856. Rob
- jQuery设置和移除文本框默认值
- ios-使用模态视图
- Ubuntu下PyCharm配置Django的操作
- list_add_tail()
- 三个球面交点的严格表达式
- JSP静态导入与动态导入
- TCP 滑动窗口及 MTU
- 设计模式六大原则
- QSqlQuery::value: not positioned on a valid record 的错误的解决方法
- 泛型-通配符的使用
- 一个硬盘的自白书
- python实战--web.py实战(开发新浪微博应用)