4.10 双向链表

    基本概念

    从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,这种数据结构形式使得双向链表在查找时更加方便,特别是大量数据的遍历。由于双向链表具有对称性,能方便地完成各种插入、删除等操作,但需要注意前后方向的操作。

    功能

    Huawei LiteOS系统中的双向链表模块为用户提供下面几个接口。

    双向链表的典型开发流程:

    1. 调用LOS_ListInit初始双向链表。

    2. 调用LOS_ListAdd向链表中增加节点。

    3. 调用LOS_ListDelete删除指定节点。

    4. 调用LOS_ListEmpty判断链表是否为空。

    5. 调用LOS_ListDelInit删除指定节点并以此节点初始化链表。

    • 需要注意节点指针前后方向的操作。

    实例描述

    使用双向链表,首先要申请内存,删除节点的时候要注意释放掉内存。

    本实例实现如下功能:

    1. 增加节点。

    2. 删除节点。

    3. 测试操作是否成功。

    编程示例

    代码实现如下:

    结果验证

    编译运行得到的结果为: