C语言单向链表的实现(3)

return 0;
}
/*****************************************
函数功能:清空整个链表
函数入参:pstInHead 链表的头结点
返回值: 0 成功
      1 失败
******************************************/
int clearList(NODE* pstInHead)
{
    if (NULL == pstInHead)
    {
        printf("clearList: the parameter pstInHead is NULL");
        return 1;
    }
    int nListLen = getListLength(pstInHead);
    /**暂存链表的头结点*/
    NODE* pstTempHead = pstInHead;

/**如果只有头结点直接返回*/
    if (1 == nListLen)
    {
        return 0;
    }
    NODE* pstTempNode = NULL;
    pstInHead = pstInHead->plNext;
    while (NULL != pstInHead)
    {
        pstTempNode = pstInHead;
        pstInHead = pstInHead->plNext;
        free(pstTempNode);
    }
    pstTempHead->plNext = NULL;
    return 0;
}
int main()
{
    NODE* pstListHead = createList(-1);

/**测试插入头部、尾部函数*/
    insertListTail(pstListHead, 11);
    insertListTail(pstListHead, 12);
    insertListTail(pstListHead, 13);
    insertListTail(pstListHead, 5);
    insertListHead(pstListHead, 22);
    /**遍历整个链表*/
    forEachList(pstListHead);

/**测试删除头部节点*/
    delListHead(pstListHead);
    forEachList(pstListHead);

/**测试删除尾部节点*/
    delListTail(pstListHead);
    forEachList(pstListHead);

/**测试清空链表*/
    clearList(pstListHead);
    forEachList(pstListHead);

/**测试插入头部、尾部函数*/
    insertListTail(pstListHead, 101);
    insertListTail(pstListHead, 2);
    insertListTail(pstListHead, 76);
    insertListTail(pstListHead, 43);
    insertListHead(pstListHead, 22);
    insertListHead(pstListHead, 333);
    forEachList(pstListHead);

/*测试正排序函数**/
    sortList(pstListHead, 0);
    forEachList(pstListHead);

/*测试反排序函数**/
    sortList(pstListHead, 3);
    forEachList(pstListHead);

system("PAUSE");
    return 0;

}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fcc4600961ae1901c79522a2d4d6fd51.html