Free RTOS List 学习

Free RTOS List 学习

二、链表的操作

Free RTOS中,与链表相关的操作都在 list.h 和list.c 这两个文件中实现。

2.1 链表节点初始化函数在list.c中实现:

void vListInitialiseItem( ListItem_t * const pxItem );

2.2 链表根节点的数据结构在list.h中定义;

2.3 链表根节点的初始化在list.c中实现:

void vListInitialise( List_t * const pxList );

2.4 将节点插入到链表的尾部:

void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem );

 将节点插入到链表的尾部

2.5 将节点按照升序排列插入到链表:

void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem );

将节点按照升序排列插入到链表

2.6 将节点从链表删除

UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove );

将节点从链表删除

链表节点插入实验:

新建一个根节点和三个普通节点,然后将这三个普通节点按照节点
排序辅助值做升序排列插入到链表中。

/* 链表根节点初始化 */
    vListInitialise( &List_Test );
    
    /* 节点1初始化 */
    vListInitialiseItem( &List_Item1 );
    List_Item1.xItemValue = 1;
    
    /* 节点2初始化 */    
    vListInitialiseItem( &List_Item2 );
    List_Item2.xItemValue = 2;
    
    /* 节点3初始化 */
    vListInitialiseItem( &List_Item3 );
    List_Item3.xItemValue = 3;
    
    /* 将节点插入链表,按照升序排列 */
    vListInsert( &List_Test, &List_Item2 );    
    vListInsert( &List_Test, &List_Item1 );
    vListInsert( &List_Test, &List_Item3 );

在这里插入图片描述

仿真结果:

在这里插入图片描述
文章摘取自野火的课件,仅供个人学习记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘉禾天成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值