学习建议:
1、看完一节视频,立即去实践,随学随练。
2、优秀的视频比自己去看书,更能消化理解
3、学习效果的检验方法是独立实现功能,实现后对比视频中的教学代码,查漏补缺。
4、独立编写过程中记录。
教学视频:https://www.bilibili.com/video/BV1yv411y7AW?p=5&vd_source=da60f9e1bc3321cae28c29fe80e9b078
REAME 如下:
2024/04/30
-目标:独立实现动态单向链表的增删改查
-编译方式:gcc -g link_list.c
迭代如下:
版本1:link_list.c-v0.1:
step1.[链表初始化],也就是创建链表,也就是创建一个头节点,并且使 next = NULL;
注意:初始化函数不需要形参(和大多数初始化函数一样),只需要返回值是一个指针即可。
step2.链表节点的增加,也就是链表节点的插入。
-[尾插法]:借助尾指针prear 该指针始终指向尾节点。
存在问题:函数设计的参数列表设计有问题。
-头插法:待增加。
step3.[链表的遍历]。借助辅助指针 current。
-存在的问题:尾节点的数据未打印出来。解决:正确的循环条件是 while(current != NULL)
版本2:
link_list.c-v0.2:
step1.继续完成使用[头插法完成在某个节点前面插入新节点]。
-使用两个辅助指针pre、current, 同时移动两个指针。
-初始时,pre指向头节点, current 指向头节点的下一个节点。
存在的问题:1、注意while 循环的条件; 查找到数据后应退出循环
2、需要考虑没有找到带查找节点。
step2.[清空链表],只保留头节点。记录释放节点的下一个节点。
-存在问题: 别忘了最后要把头节点指向NULL。
step3.[删除某节点] 修改指向; 释放空间
注意: 释放空间后,需要将该指针