接着写链表的东西,今天顺便把微信公众号,开通了。希望有些东西可以自己坚持下去。
1)
求长的大概思路是这样的,判断从头节点开始判断,指针域是否为空。设置一个计数器,然后读取计数器的值,就得到链表的长度了。
代码如下:
int length_list(PNODE pHead)
{
PNODE p = pHead->pNext;
int i=0;
while (p != NULL)//如果列表中没有要删除的节点 你就会一直走到最后的一个 p==NULL的节点 也是就最后一个节点的下一个节点
{ //反之p->next就不会他只会到最后一个节点是就终止
i++;
p = p->pNext;
}
printf("\n");
return i;
}
这里要注意的还是必须定义一个中介变量p,否则的话计数器不会计数。
2)判断为空
同样先理一下思路,如果头节点的地址域为空,则为空链表。
代码如下:
bool is_empty(PNODE pHead)
{
if (NULL == pHead->pNext)
return true;
else
return false;
}
注意:
这里同样用的是对头节点指针域判断。为空不代表链表所占内存空间为空。只有头节点,没有有效节点的链表也是空链表。