C数据结构链表的插入,删除,逆序…

小女子最近苦于单链表的一些操作函数,终于有所领悟,急忙想跟和我一样晕头的同学一起分享,写的不对的地方还请大家多多指教哦!同样期待大神的指点!

那么先说一下数组和链表吧!

数组的缺点:我们一般用的传统数组的长度都要事先设定,内存由系统分配,函数调用结束后系统自动回收,不能跨函数调用。

链表:内存空间不要求连续,插入和删除操作灵活

链表是由头结点,首结点,普通结点和尾结点组成的 。
结点存储了两部分信息  1 ,数据      2,存放下一个结点的结点指针

头节点:链表的第一个结点,不存放数据,指针存放首节点的地址
头指针:指向头结点的指针,通过头指针可以遍历链表,对链表进行所有操作
首结点:第一个存放数据的结点
尾结点:存放有效数据,但是指针为NULL
那么除了头节点,其他结点都存放了有效数据,所以当头结点的指针为NULL,说明此链表为空链表。 C数据结构链表的插入,删除,逆序等操作函数(1)

C数据结构链表的插入,删除,逆序等操作函数(1)             
    了解了链表之后,那么我们怎么对链表进行操作呢?
首先需要变量包含两个信息,那么会想到结构体,结构体里的成员一个是数据,另一个是指针,那么这个指针应该定义什么类型呢?因为指针是指向下一个结点的,而下一个结点又包含了两部分信息,所以我们这样定义:

C数据结构链表的插入,删除,逆序等操作函数(1)    1:链表的插入(头插和尾插)

C数据结构链表的插入,删除,逆序等操作函数(1)
              整理好思路之后, 头插代码如下:
C数据结构链表的插入,删除,逆序等操作函数(1)
头插法,每次新结点都会插入头结点的下一个结点,也就是首结点的位置。

尾插代码如下:


C数据结构链表的插入,删除,逆序等操作函数(1)
             
未完见C数据结构链表的插入,删除,逆序等操作函数(2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值