C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度

C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度



    上一篇文章给出了设置结点数据与获取结点数据的两个函数,本篇文章将给出判断链表是否为空和获取链表长度的函数,共两个函数。



/*============================================================================== 
*   操作  :检查链表是否为空
*   操作前:pHeadNode为链表的头指针
*   操作后:如果链表为空,则返回TRUE,否则返回FALSE
==============================================================================*/
C_Bool CheckMyListEmpty(MyListNode* pHeadNode)
{
    if(pHeadNode == NULL)
    {
        printf("The list is empty.\n");
        return TRUE;
    }
    else
    {
        printf("The list is no empty.\n");
        return FALSE;
    }
}

/*============================================================================== 
*   操作  :获得链表的长度
*   操作前:pHeadNode为链表的头指针
*   操作后:返回链表的长度
==============================================================================*/
int GetMyListLen(MyListNode* pHeadNode)
{
    MyListNode* pListNodeTmp = pHeadNode;
    int iLen = 0;

    // 判断是否有链表输入
    if(pHeadNode == NULL)
    {
        fprintf(stderr, "There is no list.\n");
        return -1;
    }

    // 获得长度
    while(pListNodeTmp != NULL)
    {
        iLen++;
        pListNodeTmp = pListNodeTmp->pNextNodeAddr;
    }
    return iLen;
}

    这两个函数比较简单,对于常见的错误处理以及布尔变量此处不再过多去说,大家一看便知。

    原文作者:君临丶天下
    原文地址: https://blog.csdn.net/dan15188387481/article/details/50016099
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞