Java学习笔记day(40)

主要学习内容:

1.学习了用 this 可以调用其它的构造方法以减少冗余代码,和Exception 的抛出与捕获的机制。这点的学习使代码的纠错以及解读更加细致方便。
2.学习了图的相关知识和检测图的连通性原理。
3.回顾了dfs和bfs算法,前者用栈后者用队列。
4.学习了经典回溯图的m着色问题。
5.图的压缩存储方式是用邻接表,十字链表是为了便于求得图中顶点的度(出度和入度)而提出来的。它是综合邻接表和逆邻接表形式的一种链式存储结构。
6.prim算法是最小生成树算法,它运用的是贪心原理,设置两个点集合,一个集合为要求的生成树的点集合A,另一个集合为未加入生成树的点B。
7.Dijkstra是计算最短路径的算法,用于计算一个节点到其他节点的最短路径,与它类似的还有克鲁斯卡尔算法,是计算多源最短路径的,即每个节点到其他各节点的最短路径。
8.学习了有向无环图的相关概念,有向无环图(DAG)才有拓扑排序,非 DAG 图没有拓扑排序。计算关键路径需要用到拓扑排序,用正向拓扑计算关键路径上事件发生的最早时间,逆向拓扑计算最晚时间。

总结

近十天的主要学习内容是图的使用和理解。还属于数据结构的范畴,有之前对树的数据结构知识的学习,图的基础知识部分相对易懂一些了。但是对于代码的编写和理解反而加大了,这是因为图的复杂度更高,具体体悟有:
1.高级的数据结构类型可以是几种基础数据类型的综合。
2.代码的理解一定要学好英语,因为命名基本是对应的英语单词。
3.看懂不等于会,会不一定等于能敲出来,敲的出来也不一定能接很好的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值