c语⾔学习---链表的增删查改(瞎⼦都能看懂)有代码
⼀.介绍
1. 格式
尾结点为NULL
⼆.增删查改(风险与机遇并存)
头指针:phead
尾指针:ptail
链表可以只有头指针
如何"定义"链表?
1. 定义头指针,尾指针,要插⼊的值.两个指针表⽰链表,⾃⼰幻想⼀下
2. 头指针尾指针要赋值为NULL,要插⼊的值其实是⾃⼰输⼊的值
3. 循环输⼊要插⼊的值,循环体⾥是调⽤的函数
1.插⼊
结构体怎么写:
1.要有值,整型,字符型之类的值
2.要有指向下⼀结点的指针
3.要定义别名,普通别名,指针类型别名
函数
函数声明怎么写?
1. 定义头指针,定义尾指针,定义要插⼊的值
2. 函数声明中类型必须写,形参可以不写
3. 头指针和尾指针都是⼆级指针,通过对⼆级指针取地址,得到⼀级指针,也就是结点中值的地址,eg:*头节点=新结点的地址
⼀开始头指针和尾指针都是NULL
1.头插法
插⼊⽅法:
1. 定义⼀个新结构体结点(⽕车车厢)
2. 为该结构体结点申请空间
3. 将该结构体结点的内存全部清0(让新结点的pNext为空)
4. 将插⼊的值传到该结构体结点中对应的值中
5. 如果链表为空:头结点和尾结点都指向该结点(结构体的变量名,代表该结构体的⾸地址)
6. 如果链表不为空:先将原有链表的头指针,赋给新结点的pNext((pNext是结构体⾥⾃带的指向下⼀结点地址的指针,已定义),再将新结点
作为链表头
2.尾插法
插⼊⽅法:
1. 定义⼀个新结构体结点(⽕车车厢)
2. 为该结构体结点申请空间
3. 将该结构体结点的内存全部清0(让新结点的pNext为空)
4. 将插⼊的值传到该结构体结点中对应的值中
5. 如果链表为空:头结点和尾结点都指向该结点(结构体的变量名,代表该结构体的⾸地址)
6. 如果链表不为空:先将新结点的地址,赋给原有链表的尾指针的pNext,再将新结点作为尾指针
3. 有序插⼊法
插⼊⽅法:
1. 定义⼀个新结构体结点(⽕车车厢)
2. 为该结构体结点申请空间
3. 将该结构体结点的内存全部清0(让新结点的pNext为空)
4. 将插⼊的值传到该结构体结点中对应的值中
5. 如果链表为空:头结点和尾结点都指向该结点(结构体的变量名,代表该结构体的⾸地址)
基本的增删改查语句
6.
7. 链表不为空:这时有三种情况考虑
pcur是当前的结点,ppre是上⼀个结点,pcur要往下⼀个结点,前提是ppre=pcur;然后pcur=pcur->pNext
8. 判断插⼊值是否⼩于头部数据(第⼀个数据),若是则插⼊头部,头插法
9. 若不⼩于第⼀个数据,则和下⼀个结点进⾏⽐较,或下下个,直到到⽐插⼊值⼤的数,然后插在该数的前⾯.新结点的指针插⼊该节点前⾯,
前⼀个结点的pNext指向新结点

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。