20162311 2017-2018-1 《程序设计与数据结构》第九周学习总结
2017-11-04 20:09
549 查看
20162311 2017-2018-1 《程序设计与数据结构》第九周学习总结
教材学习内容总结
堆的概念以及相关方法的实现自己实现最大堆的findMax方法,即获取堆的根元素
利用堆进行排序:将一组元素插入最大堆中,再依次删除最大元素(也就是根元素),即可得到这组元素的降序排列;类似地,可用最小堆得到升序排列
优先队列:根据优先级进行排序,若优先级相同,则遵从FIFO的规则
代码调试中的问题和解决过程
问题1:教材上的PriorityQueue,找不到addElement方法和removeMin方法
问题1解决方案:
出错的方法都是super调用的父类的方法,而这个类是继承了
LinkedMaxHeap类, 我去查找
LinkedMaxHeap类,发现它有add方法,我想应该是书上代码有误,而且按照注释的意思这个addElement和add的功能应该是一样的,所以我将其改成了add,这样就没问题了;而removeMin(),在
LinkedMaxHeap中只有removeMax()方法,我又看了下注释,
//----------------------------------------------------------------- // Removes the next highest priority element from this queue and // returns a reference to it. //-----------------------------------------------------------------
我判断这里应该是用removeMax。改了之后才符合注释的描述
问题2:之前问题1的两个方法改完后,还有问题
问题2解决方案:
询问老师,老师说在命令行下编译,看看结果。我试着在命令行下编译,发现它提示错误出在
PriorityQueueNode类中,于是我打开
PriorityQueueNode类,发现它实现了Comparable接口,用到了泛型,把比较的类型设为
PriorityQueueNode类型,漏了一个
<T>
加上之后就 没问题了
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
错题1及原因,理解情况错题2及原因,理解情况
结对及互评
本周结对学习情况
20162325结对学习内容
教结对伙伴完成哈夫曼树的解码
学习哈夫曼树
思考
本周主要学习了堆、优先队列和哈夫曼树,包括实现哈夫曼树,用哈夫曼树进行加密解密等等,学完之后,对于树结构的认识又加深了一些。个人感觉非线性结构应该比线性结构要用的多以写,应为很多实际问题并不一定能抽象成线性的,所以非线性结构也应当学习的更深入,方便我们以后解决实际问题学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 0/0 | 0/1 | 15/25 | |
第三周 | 721/721 | 3/4 | 15/40 | |
第四周 | 0/721 | 1/5 | 15/55 | |
第五周 | 1234/1955 | 1/6 | 16/71 | |
第六周 | 0/1955 | 3/9 | 20/91 | |
第七周 | 1474/3429 | 2/11 | 24/115 | |
第八周 | 1010/4439 | 2/13 | 25/140 | |
第九周 | 2409/6848 | 1/14 | 22/162 |
实际学习时间:22小时
改进情况:还要多花时间,加强学习
参考资料
《Java程序设计与数据结构教程(第二版)》《Java程序设计与数据结构教程(第二版)》学习指导
相关文章推荐
- 20162311 2017-2018-1 《程序设计与数据结构》第三周学习总结
- 20162330 2017-2018-1《程序设计与数据结构》第九周学习总结
- 20162311 2016-2017-2 《程序设计与数据结构》第九周学习总结
- # 20162308 2017-2018-2 《程序设计与数据结构》第九周学习总结
- 20162311 2017-2018-1 《程序设计与数据结构》第五周学习总结
- 20162311 2017-2018-1 《程序设计与数据结构》第六周学习总结
- 20162304 2017-2018-1 《程序设计与数据结构》第九周学习总结
- 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结
- 20162311 2017-2018-1 《程序设计与数据结构》第七周学习总结
- 20162311 2017-2018-1 《程序设计与数据结构》第十一周学习总结
- 20162311 2017-2018-1 《程序设计与数据结构》第八周学习总结
- 20162329张旭升 2017-2018-2 《程序设计与数据结构》第三周学习总结
- 2017-2018-1 20155205 《信息安全系统设计基础》第九周学习总结
- 2017-2018-1 20155227 《信息安全系统设计基础》第九周学习总结
- 20162319 2017-2018-20162319 《程序设计与数据结构》第6周学习总结
- 20162313苑洪铭 2017-2018-1 《程序设计与数据结构》第11周学习总结
- 20162317 2017-2018-1 《程序设计与数据结构》第11周学习总结
- 2017-2018-1 20155338 《信息安全系统设计基础》第九周学习总结
- 20162318 2017-2018-1 《程序设计与数据结构》第11周学习总结
- 2017-2018-1 20155218 《信息安全系统设计基础》第九周学习总结