第04次作业-树

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提交记录截图

 

 

posted on 2018-05-05 20:17  晚宴99  阅读(537)  评论(0编辑  收藏  举报