C语言学习总结【链表】

C语言链表遍历方式总结


前言

链表作为基于数组的一种数据结构,在提供更灵活的功能的同时其实对某一功能提出更多的限制,比如是遍历链表。


一、链表是什么

链表是由数组和指针结合,转化而来的一种数据结构。其实际静态作用跟数组一样都是存储多个相同类型的数据,不同之处在于:在内存上,数组使用一段连续的地址进行存储,其地址在数组定义时就已经确定,当我们需要对数组某个元素进行取值时,可以使用下标指定数组元素的方法和利用数组指针进行移动的方法对数组进行取值;而链表与此不同,使用的并不是一段连续的地址,无法直接通过下标或简单指针移动的方法对链表内元素进行取值,故链表遍历的实现非常重要。

二、遍历链表

1.链表自身遍历法

代码如下(示例):

for(list=head;list!=NULL;list=list->next)

其中有头元点的要注意代码为:

for(list=head->next;list!=NULL;list=list->next)

2.找到最后一个元点

代码如下(示例):

while(cur->next!=null)
{
    cur=cur->next;
}

此时,cur移动到链表的最后一个元点。有:

cur->next=NULL;
cur->=arry[n-1];    //所对应数组的最后一个元素。

3.找到倒数第二个元点

代码如下(示例):

while(nextNode->next!=null)
{
    cur=cur->next;
    nextNode=cur->next;
}

总结

当链表作为输入参数时一般只提供首节点,没有提供元素个数,所以不能用

for(i=0;i<n;i++)
{
    cur=cur->next;
}

这种借助外数的方法进行遍历,而数组因为定义初始化的时候就固定了大小,故可以借助上述方法进行遍历。

`参考资料:https://blog.csdn.net/qq_45277758/article/details/114370733

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值