RT-Thread API参考手册
3.1.1
嵌入式实时操作系统
|
单向链表 更多...
结构体 | |
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 | 单向链表的链表头 |