3.链表(二)—求长算法和判断为空

接着写链表的东西,今天顺便把微信公众号,开通了。希望有些东西可以自己坚持下去。

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;
}

注意:

这里同样用的是对头节点指针域判断。为空不代表链表所占内存空间为空。只有头节点,没有有效节点的链表也是空链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值