您的位置:首页 > 大数据 > 人工智能

list_add_tail()

2007-01-12 17:29 399 查看
将new所代表的list_head插入head所索引的队列的尾部


static inline void list_add_tail(struct list_head *new, struct list_head *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)


}

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: