Zephyr内核——数据结构——单链列表

单链列表

Zephyr提供了一种sys_slist_t类型,用于存储简单的单链列表数据(即,每个列表元素存储一个指向下一个元素的指针,而不是指向上一个元素的指针)。这支持持续时间访问列表的第一个(头部)和最后一个(尾部)元素,插入到列表的头部之前和尾部之后,以及持续时间删除头部。删除后续节点需要访问“前一个”指针,因此只能通过搜索列表在线性时间内执行。

sys_slist_t结构可以由用户在任何可访问的内存中进行实例化。在使用之前应该用sys_slist_init()SYS_SLIST_STATIC_INIT的静态分配来初始化。它的内部字段是不透明的,不应该被用户代码访问。

列表的结束节点可以使用sys_slist_peek_head()sys_slist_peek_tail()检索,如果列表为空,则将返回NULL,否则返回指向sys_snode_t结构的指针。

sys_snode_t结构体表示要插入的数据。通常,它应该由用户分配/控制,通常嵌入在要添加到列表中的结构体中。容器结构指针可以使用SYS_SLIST_CONTAINER从列表节点中检索,并将其传递给包含结构的结构名和节点的字段名。在内部,sys_snode_t结构只包含下一个指针,可以使用sys_slist_peek_next()访问它。

可以通过在具有sys_slist_prepend()sys_slist_append()的头部或尾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值