1.学习总结
1.1树结构思维导图
1.2 树结构学习体会
- 树是一种非线性结构,其定义是递归的,在学习过程中,需要注意递归的调用。
- 遇到的困难:对递归的调用不够熟练,导致需要使用递归时无从下手;对树的遍历掌握很差,用程序实现树的遍历较为困难;树的线索化不甚明朗,代码实现较为困难。
- 解决的问题:通过遍历求解表达式的值或进行表达式的转换;根据先序遍历、中序遍历、后序遍历确定唯一二叉树;二叉树,树,森林间的相互转化;将二叉树线索化;找出哈夫曼树,求解节点的哈夫曼编码;利用并查集求解等价问题;
2.PTA实验作业
2.1 题目1:6-1 jmu-ds-二叉树操作集
2.2 设计思路(伪代码或流程图)
2.3 代码截图
2.4 PTA提交列表说明。
按照书上的参考代码进行编写,无错误。
2.1 题目2:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)
2.3 代码截图
2.4 PTA提交列表说明。
编程时递归调用不清,忽略了题目本身给出的判断符号次序的函数,导致题目复杂化,忘记当除0的时候需要返回错误提示。
2.1 题目3:7-3 jmu-ds-二叉树层次遍历
2.2 设计思路(伪代码或流程图)
2.3 代码截图
2.4 PTA提交列表说明。
恢复二叉树时忘记给左右孩子进行编号,导致程序超时;
进行层次遍历时运用了递归,但是没有考虑到树两边不对等的情况,递归不便于操作。
3.截图本周题目集的PTA最后排名
本次题目集总分:285分
必做题共:230分
3.1 PTA排名截图
3.2 我的总分:2分
4. 阅读代码(必做)
基于平衡二叉树的动态线段树
https://gitee.com/WellerZhao/DSTree/blob/master/DSTree/DSTree/main.cpp
通过查找发现平衡二叉树的查找插入删除的时间复杂度都为O(logn);
本篇代码是在平衡二叉树的基础上进行拓展,将平衡二叉树放在类似于坐标纸上进行旋转和平衡。
5. 代码Git提交记录截图