更新时间:2021-07-08 GMT+08:00
编程实例
实例描述
本实例实现如下功能:
- 初始化双向链表。
- 增加节点。
- 删除节点。
- 测试操作是否成功。
编程示例
代码实现如下:
#include "stdio.h" #include "los_list.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif /* __cpluscplus */ #endif /* __cpluscplus */ static UINT32 DLlist_sample(VOID) { LOS_DL_LIST DLlist = {NULL,NULL}; LOS_DL_LIST DLlistNode01 = {NULL,NULL}; LOS_DL_LIST DLlistNode02 = {NULL,NULL}; LOS_DL_LIST DLlistNode03 = {NULL,NULL}; dprintf("Initial head\n"); LOS_ListInit(&DLlist); LOS_ListAdd(&DLlist, &DLlistNode01); if (DLlistNode01.pstNext == &DLlist && DLlistNode01.pstPrev == &DLlist) { dprintf("Add DLlistNode01 success \n"); } LOS_ListTailInsert(&DLlist, &DLlistNode02); if (DLlistNode02.pstNext == &DLlist && DLlistNode02.pstPrev == &DLlistNode01) { dprintf("Tail insert DLlistNode02 success \n"); } LOS_ListHeadInsert(&DLlistNode02, &DLlistNode03); if (DLlistNode03.pstNext == &DLlist && DLlistNode03.pstPrev == &DLlistNode02) { dprintf("Head insert DLlistNode03 success \n"); } LOS_ListDelInit(&DLlistNode03); LOS_ListDelete(&DLlistNode01); LOS_ListDelete(&DLlistNode02); if (LOS_ListEmpty(&DLlist)) { dprintf("Delete success \n"); } return LOS_OK; } #ifdef __cplusplus #if __cplusplus } #endif /* __cpluscplus */ #endif /* __cpluscplus */
结果验证
编译运行得到的结果为:
Initial head Add DLlistNode01 success Tail insert DLlistNode02 success Head insert DLlistNode03 success Delete success
父主题: 双向链表