c语言学习---链表的增删查改(瞎子都能看懂).pdfVIP

  • 3
  • 0
  • 约5.76千字
  • 约 19页
  • 2023-01-10 发布于上海
  • 举报

c语言学习---链表的增删查改(瞎子都能看懂).pdf

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指向新结点 这⾥为什么是while(pCur)呢?(2,5,8) 不为空时,先和第⼀个结点⽐较,此时发现⽐第⼀个结点⼤,然后和下⼀个结点⽐较,假如插⼊值时6.此时 pcur还是指向第⼀个结点,6⽐2⼤,然后和下⼀个⽐较,这时pcur进⼊while,此时if(62),不进⼊if语句,然后执 ⾏下⾯语句, ⽬前pcur和ppre指向的都是头指针,但还是多运⾏了⼀次ppre的赋值,然后pcur指向下⼀个结点, 再次进⼊while,if(65),不进⼊if,此时ppre指向5,然后pcur指向8,然后再进⼊while,然后if(68),此时pnew插⼊ 在ppre和pcur之间.然后break. 如果插⼊10,则if(108),此时ppre指向尾结点,pcur-pNext为NULL,也就是此时pcur=NULL,再次进⼊ whil(NULL),则退出进⾏到下⼀过程 10. 实在找不到⽐插⼊值⼤的,就插到末尾,尾插法 11. 顺序,逆序插⼊, ⾃⼰画图⽐划⼀下就⾏ 2.删除 删除不需要申请空间,需要释放空间 ⽅法 1. 先判断链表是否为空,为空的话直接打印链表为空 2. 不为空的话,开始从链表中查找删除值 3. 先⽐较链表的第⼀个结点,是该结点. 4. 如果该链表只有⼀个元素,那么删除该链表后,尾指针=NULL. 5. 如果链表有很多元素,将第⼆个结点赋为头节点,free()第⼀个结点. 6. 如果不是第⼀个结点,⽽是中间结点,且找到了该结点,那么将该结点的pNext赋给前⼀结点的pNext,然后 free()该结点 7. 如果第⼆个节点不是,则继续遍历,ppre=pcur;pcur=pcur-pNext; 8. 如果是最后⼀个节点,则此时:pcur-pNext = NULL; ppre-pNext = pcu

文档评论(0)

1亿VIP精品文档

相关文档