2024-2025-1-《计算机基础与程序设计》20241313刘鸣宇
作业信息
这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)
这个作业的目标 <写上具体方面>
作业正文 ... 本博客链接
教材学习内容总结
《计算机基础与科学概论》第八章
1.抽象数据类型:
定义与特点:抽象数据类型是一种将数据的属性(数据和操作)明确地与特定实现分离的容器。每种 ADT 都有其特定的行为,其存在的主要目的是存放其他对象。这意味着用户在使用 ADT 时,只需关注数据的逻辑结构和所支持的操作,而不必关心其具体的实现细节。
与具体数据类型的区别:具体数据类型更侧重于数据的物理存储和实现细节,而抽象数据类型强调数据的逻辑结构和操作,将数据的表示和操作分离开来,提高了代码的模块化程度和可维护性。
常见的抽象数据类型:
2.栈:
特点:是一种后进先出(LIFO,Last In First Out)的数据结构,只允许在栈顶进行插入(入栈,push)和删除(出栈,pop)操作。
应用场景:常用于表达式求值、函数调用等。例如,在函数调用时,函数的调用信息会被压入栈中,当函数执行完毕后,再从栈中弹出,恢复之前的调用状态。
3.队列:
特点:是一种先进先出(FIFO,First In First Out)的数据结构,允许在队尾进行插入操作,在队头进行删除操作。
应用场景:常用于任务调度、广度优先搜索等。比如,操作系统中的任务队列,新的任务在队尾加入,按照进入的先后顺序在队头被执行。
4.列表:
特点:列表中的项目是线性的、同构的且是变长的。列表可以形象化为链式结构,每个节点包含用户的数据和指向下一个节点的链接或指针。需要注意的是,列表不是数组,数组是内嵌结构,而列表是抽象结构。
5.树:
基本概念:树是一种分层结构的数据类型,由节点组成,每个节点有一个父节点和零个或多个子节点。具有唯一起始节点(根节点),根节点和每个节点之间都有且只有一条路径。
二叉树:是一种特殊的树,每个节点最多有两个子节点。
二叉检索树:节点存在语义排序,任何节点的树必须比左子树的数大,比右子树的数小。可用于高效的搜索、插入和删除操作。
其他操作:包括树的遍历(如前序遍历、中序遍历、后序遍历、层序遍历等)。
6.图:
组成:由节点(也称为顶点)和连接节点的线段(边)构成。
类型:可以分为有向图(边具有方向)和无向图(边没有方向)。
算法:常见的图算法有深度优先搜索(DFS,按深度最大进行遍历)、广度优先搜索(BFS,按层级结构一层一层遍历)、单源最短路搜索(如迪杰斯特拉算法,用于寻找图中某一顶点到其他各顶点的最短路径)。
7.子程序:
定义与作用:子程序是一段可重用的代码块,可以接受输入参数并返回结果。它的使用能够避免重复编写相同的代码,提高了代码的复用性,同时也使得程序结构更加清晰和易于管理。
参数传递:包括值参(按值传递参数,即传递参数的副本)和引用参数(按引用传递参数,传递的是参数的地址,对参数的修改会影响到原始数据)等方式。
与子算法的关系:子程序可以实现独立的子算法,通过调用子程序来执行特定的功能。
《C语言程序设计》第六章
第六章主要讲了C语言中的循环控制结构,通过循环来实现重复语句的简单化,以及对go-to ,break ,continue语句的使用与利用
教材学习中的问题和解决过程(先问 AI)
基于AI的学习
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 3/4 18/38
第三周 500/1000 4/7 22/60
第四周 900/1300 5/9 35/90
第五周 400/1600 5/7 42/120
第六周 500/1800 6/7 50/150
第七周 600/1800 7/8 70/150