双向链表由内联函数实现 http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-apx-dll.html 更多...
结构体 | |
struct | LOS_DL_LIST |
类型定义 | |
typedef struct LOS_DL_LIST | LOS_DL_LIST |
函数 | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListInit (LOS_DL_LIST *list) |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListAdd (LOS_DL_LIST *list, LOS_DL_LIST *node) |
Insert a new node to a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListTailInsert (LOS_DL_LIST *list, LOS_DL_LIST *node) |
Insert a node to the tail of a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListHeadInsert (LOS_DL_LIST *list, LOS_DL_LIST *node) |
Insert a node to the head of a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListDelete (LOS_DL_LIST *node) |
LITE_OS_SEC_ALW_INLINE STATIC INLINE BOOL | LOS_ListEmpty (LOS_DL_LIST *list) |
Identify whether a specified doubly linked list is empty. | 判断链表是否为空 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListAddList (LOS_DL_LIST *oldList, LOS_DL_LIST *newList) |
Insert a new list to a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListTailInsertList (LOS_DL_LIST *oldList, LOS_DL_LIST *newList) |
Insert a doubly list to the tail of a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListHeadInsertList (LOS_DL_LIST *oldList, LOS_DL_LIST *newList) |
Insert a doubly list to the head of a doubly linked list. 更多... | |
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID | LOS_ListDelInit (LOS_DL_LIST *list) |
Delete initialize a doubly linked list. | 将指定节点从链表中删除,并使用该节点初始化链表 更多... | |
双向链表由内联函数实现 http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-apx-dll.html
基本概念 双向链表是指含有往前和往后两个方向的链表,即每个结点中除存放下一个节点指针外, 还增加一个指向前一个节点的指针。其头指针head是唯一确定的。 从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,这种 数据结构形式使得双向链表在查找时更加方便,特别是大量数据的遍历。由于双向链表 具有对称性,能方便地完成各种插入、删除等操作,但需要注意前后方向的操作。 双向链表的典型开发流程: 调用LOS_ListInit/LOS_DL_LIST_HEAD初始双向链表。 调用LOS_ListAdd/LOS_ListHeadInsert向链表头部插入节点。 调用LOS_ListTailInsert向链表尾部插入节点。 调用LOS_ListDelete删除指定节点。 调用LOS_ListEmpty判断链表是否为空。 调用LOS_ListDelInit删除指定节点并以此节点初始化链表。 注意事项 需要注意节点指针前后方向的操作。 链表操作接口,为底层接口,不对入参进行判空,需要使用者确保传参合法。 如果链表节点的内存是动态申请的,删除节点时,要注意释放内存。
在文件 los_list.h 中定义.