20182328 2019-2020-1 《数据结构与面向对象程序设计》第十周学习总结

20182328 2019-2020-1 《数据结构与面向对象程序设计》第十周学习总结

教材学习内容总结

图的概念

  • 图由顶点和边组成。
  • 邻接的(adjacent):图中的两个顶点之间有一条连通边。
  • 邻居:邻接顶点。
  • 自循环(环):连通一个顶点及其自身的边。
  • 路径:由一个顶点到达另一个顶点。
  • 路径长度:路径边的条数(顶点数 - 1)。
  • 环路:一种首顶点和末顶点相同且没有重边的路径。没有环路则是无环的(acyclic)。

图的种类

  • 无向图:是一种边为无序结点对的图。
  • 完全的:无向图拥有最大数目的连通顶点的边。对于n个顶点的无向图,要是完全的,要有n(n-1)/2条边,假设没有边是自循环的。
  • 连通的:无向图中任意两个顶点之间都存在一条路径。
  • 无向树:一种连通的无环无向图,其中一个元素被指定为树根。
  • 有向图:也称双向图,一种边为有序顶点对的图。
  • 有向图的路径不是双向的,反方向路径不成立。
  • 有向树:指定一个元素作为树根。
  • 不存在其他顶点到树根的连接。
  • 每个非树根元素恰好有一个连接。
  • 树根到每个其他顶点都有一条路径。
  • 网络:一种每条边都带有权重或代价的图。路径权重是该路径中各条边权重的和。

图的算法

  • 遍历
  • 广度优先遍历:类似树中的层次遍历。把图的每一邻接的横向依次遍历。
  • 深度优先遍历:顾名思义,把图的每一邻接的纵向遍历,类似树的前序遍历。
  • 深度优先遍历和广度优先遍历的唯一不同是使用的是栈而不是队列来管理。
  • 测试连通性:
    从任意结点开始的广度优先遍历中得到的顶点数等于图中所含顶点数,则是连通的。
  • 最小生成树(minimum spanning tree):边的权值之和小于或等于其他任意一棵生成树的边的权值之和。
  • 图的实现策略:用邻接列表或者邻接矩阵等。有向图和无向图是不同的。

教材学习中的问题和解决过程

  • 问题1:课本上给了广度优先遍历和深度优先遍历的差异,那么深度优先遍历的步骤具体是怎样的呢?
  • 问题1解决方案:图的深度优先遍历和广度优先遍历的主要差异是它使用的是栈而不是队列来管理遍历的,所以步骤为从顶点9-->顶点6-->顶点3-->顶点1,到顶点1之后,再从顶点9的相邻顶点开始重新遍历。
  • 问题2:有向图和无向图的邻接矩阵有什么区别?
  • 问题2解决方案:

    一、对称区别:

    1、无向图的邻接矩阵是对称的。

    2、有向图的邻接矩阵不一定对称。


    二、元素区别:

    1、对于无向图,顶点V1的度是邻接矩阵中第i行(或第i列)的非零元素的个数。

    2、对于有向图,顶点V1的度是邻接矩阵中第i行和第i列的非零元素的个数之和。

代码调试中的问题和解决过程

  • 问题1:错误提示类Graph找不到符号
  • 问题1解决方案:把文件名和类名调成一致即可

代码托管

上周考试错题总结

  • 无错题

结对及互评

评分标准

  • 基于评分标准,我给本博客打分:14分。得分情况如下:
  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程, 加2分
  4. 代码调试中的问题和解决过程, 加1分
  5. 本周有效代码超过300分行的(加2分)
  6. 其他加分:加7分
  7. 扣分:0分

点评模板:

  • 博客中值得学习的或问题:

    • 内容详实且精简
    • 问题充分且已解决
  • 代码中值得学习的或问题:
    • 正确且简练
    • 方法多样很值得学习
  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

    • 20182322
    • 结对学习内容
      • 图的基本概念和相关延伸
      • 图的算法

其他(感悟、思考等,可选)

本周虽然只学了一章,但图在数据结构中应用范围是较为广泛的,实现的方法也是多种多样。要想全部理解吸收还是很有难度的,但是努力的敲课本上的代码,再加上从网上搜资料还是能够解决问题的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:XX小时
  • 实际学习时间:XX小时
  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

原文地址:https://www.cnblogs.com/monsterhunter/p/11963531.html

时间: 2024-10-04 21:49:39

20182328 2019-2020-1 《数据结构与面向对象程序设计》第十周学习总结的相关文章

《数据结构与面向对象程序设计》第四周学习总结

20182304 2019-2020-1 <数据结构与面向对象程序设计>第四周学习总结 教材学习内容总结 1.本章我们学习了使用并编写我们自己的类:类中有与类同名的构造方法,也可以有set,get,toSring与自己定义的方法.实例化一个对象,可通过该对象使用类里的所有方法.实例数据是每次创造一个实例后自动生成新的内存空间的变量 2.uml类图 :每个类可能包含三部分内容:类名.属性.操作(方法).UML类图有属于自己的语法,变量的类型名在变量名的后面,它们之间用冒号作为分隔符,方法的+和-

20182306 2019-2020-1 《数据结构与面向对象程序设计》第五学习总结

20182306 2019-2020-1 <数据结构与面向对象程序设计>第五学习总结 教材学习内容总结 尽量简单的总结一下本周学习内容 尽量不要抄书,浪费时间 看懂就过,看不懂,学习有心得的记一下 教材学习中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码调试中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码托管 (stat

20182322 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.编写类与方法(构造方法的结构和用途) 2.实际参数与形式参数.public与private.return与void的区别与含义. 3.UML类图的含义与形式 4.静态类(Math类)静态变量.静态方法 5.类间关系(依赖关系.聚合关系.继承关系) 6.接口的使用,能够在某个类中实现接口的方法(Comparable.Iterator) 7.软件活动开发.方法设计.方法重载.测试(黑盒测试.白盒测试) 教材学习中的问题和解决过程 问题1:toString与return返回的值的

20182335 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.继承的基本语法与用法. 2.利用UML类图表示继承关系. 3.在具体编写类的时候,先是数据声明再是方法声明. 4.toString方法用println或print或字符串连接会自动调用. 5.每创建一个对象.都会为类中声明的变量建立新的内存空间. 6.UML图一些基础使用方法. 7.对象应该是自管理的,既对象的实例数据应该仅由该对象来修改,这就构成了封装. 代码调试中的问题和解决过程 问题1:测试代码出现错误 问题1解决方案:junit的方法名必须是textxxx或xxxt

201621123041java程序设计第十周学习总结

1. 本周学习总结 2. 书面作业 1. 常用异常 1.1 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 最频繁的错误包括ArrayIndexOutOfBoundsException(数组越界). NullPointerException(空指针).ClassCastException(强制类型转换错误).IllegalArgumentException(非法参数),以上异常都不需要捕获,都属于uncheckedException. 1.2 什么样的异常要求用户一定要

20182328 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

20182328 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 教材学习内容总结 1.对类和对象进一步的了解. 2.学习静态类和静态方法. 3.学习类之间不同类型的关系. 4.学习方法的设计及重载. 5.学习了如何调试. 教材学习中的问题和解决过程 问题1:为什么有的变量可以重名? 问题1解决方案:在方法内声明的局部变量可以和在类一级声明的实例变量有同样的名字. 问题2:方法重载的用处是什么? 问题2解决方案:方法可能面临会有不用的参数列表,这时会用到重载,方便调用.

20182328 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结

20182328 2019-2020-1 <数据结构与面向对象程序设计>第5周学习总结 教材学习内容总结 1.继承的概念 2.函数的构建 3.super的用法 4.类层次结构的具体介绍 5.方法的重写 6.设计继承 教材学习中的问题和解决过程 问题1:构造方法可以继承吗? 问题1解决方案:构造方法是用来创建某个类型的对象,字典类有一个称为Book的构造方法没有意义 问题2:java为什么是单继承? 问题2解决方案:Java语言中,多继承容易带来安全隐患:当多个父类中定义了相同功能,而且功能内容

20182327 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182327 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名:赵天昊 学号:20182327 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证. 2. 实验过程及结果 不多说,上

20182319《数据结构与面向对象程序设计》实验二报告

20182319 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 彭淼迪 学号:20182319 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,用规定方法测试验证. 2. 实验过程及结果