20162324 《程序设计与数据结构》第11周学习总结

20162324 2017-2018-1 《程序设计与数据结构》第11周学习总结

目录

教材学习内容总结

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

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

代码托管

上周考试错题总结

感想

学习进度条

参考资料

教材学习内容总结

  • 遍历
    广度优先遍历与深度优先遍历。这两种算法各有各的优点,在实现广度优先遍历的时候就要用到我们原先学习过的队列的数据结构,而在实现深度优先遍历的时候就要用到的数据结构是栈。在下图是两种遍历方法遍历无向图的实例:


生成最小树

  • Prim算法
    注重顶点,后选取顶点间的最小边就可以构造出最小代价的树。适用于顶点较少的图的最小生成树的构造。
  • Kruska算法
    注重边,先选出最小的边,并保证这条边不会连接在同一条树上的元素,一直重复直到所有的元素都在同一个树上为止。适用于边比较少的图的最小生成树的构造。

哈希方法

在哈希方法中,元素保存在哈希表中,其在表中的位置由哈希函数确定。
而哈希函数的确定的方法就有除法方法、折叠方法、平方取中方法、基数转换方法、数字分析方法、长度依赖方法。
在理想哈希函数的时候每一个元素映射到表中唯一的位置。
不是理想哈希函数的时候两个元素或关键字会映射到到同一个位置,这种情况就作冲突。
但出现冲突时就要去解决冲突,在解决冲突的时候就有不同的方法,第一种方法是链式方法同时链式方法也要不同的实现的方式下图就是两种表现方式:

第二种方法是有开放地址方法以下是三种开放地址方法的图示:

Java Collections API中的哈希表

Hashtable类

HashSet类

HashMap类

IdentityHashMap类

WeakHashMap类

LinkedHashSet类和LinkedHashMap类


构建之法

返回目录

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

  • 问题1:1. 问题是有向图和无向图的广度遍历的区别。

  • 问题1解决方案:
    根据我查的资料显示是不一样的,但是再向图中从出发的顶点没有路径的顶点也要写出来,这不是找所有的路径而是遍历所以不能漏掉任何一个元素。参考讨论和图片:
    - 问题2:XXXXXX

返回目录

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

  • 实现图的过程中遇到的问题会在下一个实验的报告中体现。
返回目录

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结
  • 由于前周考试并没有进行测试。
返回目录

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

时间飞快,学期也已经过半了,美好的时光总是短暂的,专注于自己,不要总是看着别人。

返回目录

学习进度
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 196/196 1/1 11/11 对于算法有了进一步的了解
第二周 76/270 1/2 10/21 了解一种新的方法,提高代码的复用性。
第三周 757/1027 2/4 10/31 了解很多的高效率的排序的方法和两种查找方法
第四、五、六 1768/2805 6/10 45/76 了解队列、栈等相关知识
第七周 1037 /3842 3/13 14/90 了解了非线性结构树
第八周 下周一起统计 2/15 15/105 进一步了解树
第九周 1578/5420 1/16 15/120 对于堆与优先队列的了解加深
第十周 986/6195 2/18 15/135 实现了很多的算法完善了自己的代码包
第十周 109/6304 1/19 15/150 了解图结构与哈希方法
返回目录
  • 计划学习时间:15小时

  • 实际学习时间:15小时

  • 改进情况:加油!!!

参考资料

返回目录

posted on 2017-11-19 09:45  20162324-春旺  阅读(333)  评论(0编辑  收藏  举报

导航