一 链表初始化
LOS_DL_LIST *head; /* 定义一个双向链表的头节点 */
head = (LOS_DL_LIST *)LOS_MemAlloc(m_aucSysMem0, sizeof(LOS_DL_LIST));/* 动态申请头结点的内存 */
LOS_ListInit(head); /* 初始化双向链表 */
if (!LOS_ListEmpty(head)) /* 判断是否初始化成功 */
{
printf("双向链表初始化失败!\n\n");
} else{
printf("双向链表初始化成功!\n\n");
}
二 向链表添加节点
LOS_DL_LIST *node1 =(LOS_DL_LIST *)LOS_MemAlloc(m_aucSysMem0, sizeof(LOS_DL_LIST)); /*动态申请结点的内存*/
LOS_DL_LIST *node2 = (LOS_DL_LIST *)LOS_MemAlloc(m_aucSysMem0, sizeof(LOS_DL_LIST));/*动态申请结点的内存*/
LOS_ListAdd(head,node1); /* 添加第一个节点,连接在头结点上 */
LOS_ListAdd(node1,node2); /* 添加第二个节点,连接在一个节点上 */
三 将尾节点插入双向链表末尾
LOS_ListTailInsert(head, tail); /* 将尾节点插入双向链表的末尾 */
四 删除节点
LOS_ListDelete(node1); /* 删除第一个节点 */
LOS_MemFree(m_aucSysMem0, node1); /* 释放第一个节点的内存, */