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

list_add_tail()

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