2022-2023-1 20221313《计算机基础与程序设计》第十三周学习总结
2022-2023-1 20221313《计算机基础与程序设计》第十三周学习总结
作业信息
作业课程 | https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP |
---|---|
作业要求 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13 |
作业目标 | 《C语言程序设计》第十二章 |
作业正文 | https://www.cnblogs.com/lu-yu/p/16929123.html |
教材学习内容总结
《C语言程序设计》第十二章:
介绍了结构体的定义以及应用意义,结构体变量的定义、命名以及初始化,结构的嵌套,结构体变量的引用,结构体所占内存的字节数如何确定;
结构体数组的定义、初始化,结构体变量指针和结构体数组指针指针的定义和初始化,如何向函数传递结构体;
共用体的定义,公用体与结构体的区别,共用体的结构、初始化,以及特殊的应用;
枚举数据类型的定义、应用;
动态数据结构中单向链表的定义,如何建立一个单向链表,单项列表的插入、删除操作;
教材学习中的问题和解决过程
- 问题1:单项列表有什么优缺点吗?
- 问题1解决方案:通过查资料发现:
1.链表的内存空间不是连续的,可以充分利用计算机的内存,实现内存动态管理
2.链表在创建时不用指定大小
3.链表在插入和删除数据时,时间复杂度可以达到O(1),相对数组来说,效率要高很多
4.但是链表要任何元素,都必须重头开始遍历,无法直接通过下标值取出元素 - 问题2:单项列表和数组什么时候用哪一种更合适呢?
- 问题2解决方案:通过上网查阅资料发现:
如果是经常要取出数据,应该使用数组;
如果是要频繁插入数据,应该使用链表。
代码调试中的问题和解决过程
-
问题1:
结构体中在定义中出现错误
-
问题1解决方案:
通过翻阅课本,发现定义的数据类型为struct num,而不是num,要想不加struct,需要用typedef定义结构体名称。 -
问题2:
输入的名字无法赋值给x[i].name
-
问题2解决方案:
其实虽然结构体变量名称不代表首地址,但是数组名name代表首地址,所以不用加&。
其他(感悟、思考)
发现单项链表能够很好地利用内存空间,有很大的优点,同时了解到链表还有双向链表、循环链表等类型,等待我们更深的探索。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 10/10 | |
第二周 | 300/500 | 2/4 | 18/28 | |
第三周 | 300/800 | 3/7 | 20/48 | |
第四周 | 300/1100 | 2/9 | 20/68 | |
第五周 | 300/1400 | 2/11 | 20/88 | |
第六周 | 300/1700 | 4/15 | 20/108 | |
第七周 | 300/2000 | 1/16 | 20/128 | |
第八周 | 300/2300 | 1/17 | 20/148 | |
第九周 | 300/2600 | 3/20 | 20/168 | |
第十周 | 300/2900 | 1/21 | 20/188 | |
第十一周 | 200/3100 | 1/21 | 20/208 | |
第十二周 | 200/3300 | 1/22 | 20/228 | |
第十三周 | 200/3500 | 1/23 | 20/248 |
-
计划学习时间:20小时
-
实际学习时间:20小时