1.学习总结
1.1树结构思维导图
1.2 树结构学习体会
认识:树是一种非线性的数据结构,解决树的相应问题常常用递归的方法,若要使用非递归,则需要借助栈,队列等其他数据结构
遇到的问题:对函数的递归掌握的不太熟练,自己不能够写出递归函数
2.PTA实验作业
2.1 题目1:7-2 根据后序和中序遍历输出先序遍历
2.2 设计思路(伪代码或流程图)
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
2.4 PTA提交列表说明。
错误点:对创建树中递归函数的实参调用理解不清
2.1 题目2:6-1 jmu-ds-二叉树操作集
2.2 设计思路(伪代码或流程图)
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
2.4 PTA提交列表说明。
错误点:一开始想用栈实现树的创建,结果实现过程太复杂,导致思维混乱
解决方法:用队列实现树的创建
2.1 题目3:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
2.4 PTA提交列表说明。
错误点:没有考虑分母不为0的情况,对表达式树没有任何思路
3.截图本周题目集的PTA最后排名
3.1 PTA排名截图
3.2 我的总分:2分
4. 阅读代码(必做)
7-7 修理牧场
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。
但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大于32)。
请编写程序帮助农夫计算将木头锯成N块的最少花费。
优点:利用了队列和哈夫曼树解决了相应问题
功能:利用了哈夫曼树的WPL最小值来抽象解决花费最少问题,是哈夫曼树的一个应用
5. 代码Git提交记录截图