2022-2023-1 20221318 《计算机基础和程序设计》第七周学习总结
作业信息
这个作业属于那个班级 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
作业要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03
作业目标 学习《计算机科学概论》第八章
作业正文 https://i.cnblogs.com/posts/edit;postId=16777355
教材内容总结
在第八章“抽象数据类型与子程序”中,
- 抽象数据类型:数据结构、容器
- 栈:是一种抽象数据结构,只能从一端访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素。另一种描述栈的访问行为的是删除的项总是在栈中时间最短的项目。
- 队列:队列也是一种抽象结构,队列中的项目从一端入,从另一端出。另一种描述栈的访问行为的是删除的项总是在栈中时间最长的项目。
- 列表:列表有三个属性特征:项目是同构的,项目是线性的,列表是变长的。
列表也可以被形象化为链式结构————将数据项和找到下一项位置的信息保存到同一容器。 - 树:1.二叉树:是一种抽象结构,每个节点后可以有两个后继节点
2.二叉检索树
(1)在二叉检索树搜索
![]()
(2)构造二叉检索树
![]()
(3)输出二叉检索树中的数据
![]()
- 图:1.分类:有向图、无向图
2.创建图
3.图像法
(1)深度优先搜索
![]()
(2)广度优先算法
![]()
(3)单源最短路搜索 - 子程序:1.参数传递
2.值参与引用参数
学习中遇到的问题
Q:数组和列表的主要区别有哪些?
A:1.列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;
2.列表list不可以进行数学四则运算,数组array可以进行数学四则运算;
3.相对于array,列表会使用更多的存储空间。
Q:如何理解值参数和引用参数?
A:一.值参数:
未用ref或out修饰符声明的参数为值参数。使用值参数,通过将实参的值复制到形参的方式,把数据传递到方法。方法被调用时,系统做如下操作。
* 在栈中为形参分配空间。
* 复制实参到形参。
值参数的实参不一定是变量。它可以是任何能计算成相应数据类型的表达式。
我们用图来表示实参和形参在方法执行的不同阶段的值:
在方法被调用前,用作实参的a2已经在栈里了。在方法开始前,系统在栈中为形参分配空间,并从实参复制值。
* 因为a1是引用类型,所以引用被复制,结果实参和形参都引用堆中的同一对象。
* 因为a2是值类型,所以值被复制,产生了一个独立的数据项。
在方法的结尾,f2和对象f1的字段都被加上了5。方法执行后,形参从栈中弹出。
* 值类型,它的值不受方法行为的影响。
* 引用类型,但它的值被方法的行为改变了。

二. 引用参数:
使用引用参数时,必须在方法的申明和调用中都使用关键字ref修饰符。实参必须是变量,在用作实参前必须被赋值。如果是引用类型的变量,可以赋值为一个引用或者null值。
同样,还是用图来阐明方法执行的不同阶段实参和形参的值。
* 在方法被调用前,用作实参的a1,a2已经在栈里了。
* 在方法的开始,形参名被设置为实参的别名。变量a1和f1引用相同的内存位置,a2和f2引用相同的内存位置。
* 在方法的结束位置,f2和对象f1的字段都被加上了5。
* 方法执行之后,形参的名称已经失效,但是值类型a2和引用类型a1所指向的对象的值都被方法内的行为改变了。

Q:我在看书是并不太理解什么是深度优先算法,我在网上查询相关资料后,了解到深度优先搜索(Depth First Search)简称深搜或者 DFS,是遍历图存储结构的一种算法,既适用于无向图(网),也适用于有向图(网)。所谓图的遍历,简单理解就是逐个访问图中的顶点,确保每个顶点都只访问一次。以下图为例:

初始状态下,无向图中的所有顶点都是没有被访问过的,因此可以任选一个顶点出发,遍历整个无向图。假设从 V1 顶点开始,由于不重复的原则,假设走的路径是如下图

和 V5 相邻的顶点有两个,分别是 V2 和 V8,它们都已经访问过了。也就是说,此时从 V5 出发,找不到任何未被访问的顶点了。
这种情况下,深度优先搜索算法会回退到之前的顶点,查看先前有没有漏掉的、尚未访问的顶点:
* 从 V5 回退到 V8,找不到尚未访问的顶点;
* 从 V8 回退到 V4,还是找不到尚未访问的顶点;
* 从 V4 回退到 V2,也还是找不到尚未访问的顶点;
* 从 V2 回退到 V1,发现 V3 还没有被访问。
于是,下一个要访问的顶点就是 V3,最终搜索的路线如下图所示:

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 第一周 | 0/0 | 3/3 | 20/20 | |
| 第二周 | 105/105 | 2/5 | 20/40 | |
| 第三周 | 150/255 | 2/7 | 20/60 | |
| 第四周 | 210/465 | 2/9 | 20/80 | |
| 第五周 | 280/745 | 2/11 | 20/100 | |
| 第六周 | 320/1065 | 1/12 | 20/120 | |
| 第七周 | 400/1465 | 1/13 | 20/20 |





浙公网安备 33010602011771号