作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第七周作业 |
这个作业的目标 | <数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图,子程序与参数> |
作业正文 | https://www.cnblogs.com/lry666666/p/18537683 |
教材学习内容总结
1.数组与链表:
数组(Array):一种线性数据结构,使用连续的内存空间存储相同类型的元素。数组支持通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。
链表(Linked List):由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表便于插入和删除操作,但访问特定元素需要从头节点开始遍历。
2.基于数组和基于链表实现数据结构:
基于数组:许多数据结构如栈、队列、哈希表等都可以使用数组来实现。数组的连续性使得这些结构能够快速访问元素。
基于链表:链表可以用来实现栈、队列等,尤其是在需要频繁插入和删除的场景下。链表的非连续性使得这些操作更加灵活。
3.无序表与有序表:
无序表:元素没有特定的顺序,如哈希表、无序数组等。无序表的查找操作可能需要遍历整个表。
有序表:元素按照一定的顺序排列,如排序后的数组、二叉搜索树等。有序表便于进行范围查询和有序遍历。
4.树(Tree):
树是一种层次结构的数据结构,由节点组成,每个节点有零个或多个子节点。常见的树结构包括二叉树、平衡树(如AVL树)、B树、红黑树等。树结构用于实现文件系统、数据库索引等。
5.图(Graph):
图是由顶点(节点)和边(连接顶点的线)组成的数据结构。图可以是无向的或有向的,并且可以是加权的或无权的。图的表示方法有邻接矩阵和邻接表。图的应用包括网络分析、路径查找(如Dijkstra算法、A*算法)等。
6.子程序与参数:
子程序(Subroutine):也称为函数或方法,是一段可以重复使用的代码,用于执行特定的任务。子程序可以有自己的局部变量,并且可以接收输入参数和返回输出结果。
参数(Parameter):传递给子程序的值,用于控制子程序的行为或提供必要的数据。参数可以是值传递或引用传递,影响子程序对参数值的修改是否会影响到原始数据。
教材学习中的问题和解决过程(先问 AI)
- 问题1:什么是数组,它有什么特点?
- 问题1解决方案:数组是一种线性数据结构,使用连续的内存空间存储相同类型的元素。它的特点包括通过索引快速访问元素,但插入和删除操作可能需要移动数组中的其他元素。
- 问题2:链表和数组有什么区别?
- 问题2解决方案:链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针,而数组使用连续的内存空间存储元素。链表便于插入和删除操作,但访问特定元素需要从头节点开始遍历;数组则支持快速随机访问,但插入和删除操作效率较低。
- 问题3:子程序和参数在编程中的作用是什么?
- 问题3解决方案:子程序(函数)允许代码的模块化和重用,参数则用于传递数据给子程序,控制其行为或获取结果。这有助于减少代码重复,提高程序的可读性和维护性。
基于AI的学习
三个原则:
- 切勿原封不动地接受生成式人工智能工具的输出;确保对其进行评估、完善和修改(或提示),以适应您的目标。
- 切勿将任何个人数据(自己、同学、老师等)或版权材料纳入到你的提示词中。这个可以说是保护个人隐私的最起码的举措。
- 所有人工智能生成工具都容易产生幻觉,因此会生成不准确或误导性的信息,要学会甄别信息真假
选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容
“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”
核心是要求GPT:“请你以苏格拉底的方式对我进行提问”
然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?”
如果你觉得差不多了,可以先问问GPT:“针对我XXX知识点,我理解了吗?”
GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下。
代码调试中的问题和解决过程
- 问题1:循环条件错误导致无限循环
- 问题1解决方案:将i初始化为0
- 问题2:错误地认为数组名是数组的第一个元素
- 问题2解决方案:使用int firstElement = arr[0];获取第一个元素
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 0/2 | 18/38 | |
第三周 | 500/1000 | 1/3 | 22/60 | |
第四周 | 300/1300 | 1/4 | 30/90 | |
第五周 | 300/1600 | 1/5 | 30/120 | |
第六周 | 300/1900 | 1/6 | 30/150 | |
第七周 | 300/2200 | 1/7 | 30/180 |