![]() |
RT-Thread API参考手册
4.0.3
嵌入式实时操作系统
|
单向链表 更多...
结构体 | |
| struct | rt_slist_node |
| 单向链表节点 更多... | |
宏定义 | |
| #define | rt_slist_entry(node, type, member) rt_container_of(node, type, member) |
| 获取单向链表节点的数据结构 更多... | |
| #define | rt_slist_for_each(pos, head) for (pos = (head)->next; pos != RT_NULL; pos = pos->next) |
| 遍历单向链表 更多... | |
| #define | rt_slist_for_each_entry(pos, head, member) |
| 循环遍历单向链表head中每一个pos中的member成员 更多... | |
| #define | rt_slist_first_entry(ptr, type, member) rt_slist_entry((ptr)->next, type, member) |
| 获取链表中的第一个元素 更多... | |
| #define | rt_slist_tail_entry(ptr, type, member) rt_slist_entry(rt_slist_tail(ptr), type, member) |
| 获取链表中的最后一个元素 更多... | |
类型定义 | |
| typedef struct rt_slist_node | rt_slist_t |
| 单向链表节点类型定义 更多... | |
函数 | |
| rt_inline void | rt_slist_init (rt_slist_t *l) |
| 初始化一个单链表 更多... | |
| rt_inline void | rt_slist_append (rt_slist_t *l, rt_slist_t *n) |
| 在单向链表l的尾部追加一个节点 更多... | |
| rt_inline void | rt_slist_insert (rt_slist_t *l, rt_slist_t *n) |
| 向单向链表节点l后插入一一个节点n 更多... | |
| rt_inline unsigned int | rt_slist_len (const rt_slist_t *l) |
| 获取单向链表的长度 更多... | |
| rt_inline rt_slist_t * | rt_slist_remove (rt_slist_t *l, rt_slist_t *n) |
| 从单向链表l中移除入一个节点n 更多... | |
| rt_inline rt_slist_t * | rt_slist_first (rt_slist_t *l) |
| 获取单向链表的第一个节点 更多... | |
| rt_inline rt_slist_t * | rt_slist_next (rt_slist_t *n) |
| 获取单向链表节点n的下一个节点 更多... | |
| rt_inline int | rt_slist_isempty (rt_slist_t *l) |
| 判断单向链表是否为空 更多... | |
单向链表
| #define rt_slist_entry | ( | node, | |
| type, | |||
| member | |||
| ) | rt_container_of(node, type, member) |
获取单向链表节点的数据结构
| node | 入口点 |
| type | 结构体类型 |
| member | 结构体中链表的成员名 |
| #define rt_slist_for_each | ( | pos, | |
| head | |||
| ) | for (pos = (head)->next; pos != RT_NULL; pos = pos->next) |
遍历单向链表
| pos | 指向宿主结构的指针,在for循环中是一个迭代变量 |
| head | 链表头 |
| #define rt_slist_for_each_entry | ( | pos, | |
| head, | |||
| member | |||
| ) |
循环遍历单向链表head中每一个pos中的member成员
| pos | 指向宿主结构的指针,在for循环中是一个迭代变量 |
| head | 单链表的链表头 |
| member | 结构体中链表的成员名 |
| #define rt_slist_first_entry | ( | ptr, | |
| type, | |||
| member | |||
| ) | rt_slist_entry((ptr)->next, type, member) |
获取链表中的第一个元素
| ptr | 链表头 |
| type | 结构体类型 |
| member | 结构体中链表的成员名 |
| #define rt_slist_tail_entry | ( | ptr, | |
| type, | |||
| member | |||
| ) | rt_slist_entry(rt_slist_tail(ptr), type, member) |
获取链表中的最后一个元素
| ptr | 链表头 |
| type | 结构体类型 |
| member | 结构体中链表的成员名 |
| typedef struct rt_slist_node rt_slist_t |
单向链表节点类型定义
单向链表类型定义
| rt_inline void rt_slist_init | ( | rt_slist_t * | l | ) |
初始化一个单链表
| l | 将要被初始化的单向链表 |
| rt_inline void rt_slist_append | ( | rt_slist_t * | l, |
| rt_slist_t * | n | ||
| ) |
在单向链表l的尾部追加一个节点
| l | 被操作的链表 |
| n | 将要被追加的节点 |
| rt_inline void rt_slist_insert | ( | rt_slist_t * | l, |
| rt_slist_t * | n | ||
| ) |
向单向链表节点l后插入一一个节点n
| l | 被插入的链表节点 |
| n | 将要被插入的节点 |
| rt_inline unsigned int rt_slist_len | ( | const rt_slist_t * | l | ) |
获取单向链表的长度
| l | 单向链表的链表头 |
| rt_inline rt_slist_t* rt_slist_remove | ( | rt_slist_t * | l, |
| rt_slist_t * | n | ||
| ) |
从单向链表l中移除入一个节点n
| l | 单向链表的链表头 |
| n | 将要被移除的节点 |
| rt_inline rt_slist_t* rt_slist_first | ( | rt_slist_t * | l | ) |
获取单向链表的第一个节点
| l | 单向链表的链表头 |
| rt_inline rt_slist_t* rt_slist_next | ( | rt_slist_t * | n | ) |
获取单向链表节点n的下一个节点
| n | 单向链表的节点 |
| rt_inline int rt_slist_isempty | ( | rt_slist_t * | l | ) |
判断单向链表是否为空
| l | 单向链表的链表头 |