1.学习总结
1.1树结构思维导图
1.2 树结构学习体会
1.树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合,它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树.
2.困难:对树的算法的代码化比较吃力。
3.可解决的问题:求解哈尔曼编码以及并查集解决等价问题等。
2.PTA实验作业
2.1 题目1:6-1 jmu-ds-二叉树操作集
2.2 设计思路(伪代码或流程图)
创建树BT;
定义变量j,定义队列q;
If 字符串不为空
创建新结点;
将数据传入结点;
左右孩子清零后入队;
else 树为空;
end if;
while 队列不为空
取队顶元素后入队;
J++
If 遇到‘#’
左孩子为空
Else
创建新结点;
将数据传入结点;
左右孩子清零后入队;
End if;
J++;
If 遇到‘#’
右孩子为空
else
创建新结点;
将数据传入结点;
左右孩子清零后入队;
end while;
2.3 代码截图
2.4 PTA提交列表说明。
发现输出后格式错误,请教同学后发现可以用静态变量来控制空格的有无,加上后就通过了。
2.1 题目2:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)
创建二叉树;
创建栈t放数字;
创建栈q放运算符;
让第一个字符入栈;
While 字符串不为空
If 不是运算符
创建新节点T;
赋值并使左右孩子清空然后入栈;
Else 判断顶部元素与字符串第j个字符的大小关系
If 小于 入栈;
If 等于 访问栈顶;
If 大于 创建新节点;
将栈顶元素赋值给T;
左右孩子为栈顶元素
T入栈t;
访问栈q栈顶;
End if;
End while;
While q栈顶元素不为#
创建新节点并给q栈顶元素赋值
右孩子为t栈顶元素
If t不为空
左孩子为t栈顶
再次访问栈顶
End if
T入栈t;
访问q栈顶元素
End while;
表达式的值
设置变量sum,x,y;
If 左右子树结尾为空
返回0
递归使用a,b还未计算的下层元素
Switch T的值不为空
+ - * /分别返回相应值(‘/’时若y为0,返回错误提醒;)
End if;
2.3 代码截图
2.4 PTA提交列表说明。
提交完发现编译错误,检查完发现代码中多打了几个符号,修改后通过。
2.1 题目3:7-2 根据后序和中序遍历输出先序遍历
2.2 设计思路(伪代码或流程图)
定义2个数组;
定义变量n,I,j;
For i=0 to n
输入后序遍历的数
For i=0 to n
输入中序遍历的数
调用递归函数
当遇到根结点时弹出
输出根结点的值
递归左子树
递归右子树
2.3 代码截图
2.4 PTA提交列表说明。
提交后发现段错误,请教后发现原来是递归函数不严谨出现问题,经修改后成功通过
3.截图本周题目集的PTA最后排名
本次题目集总分:285分
必做题共:230分
3.1 PTA排名截图
3.2 我的总分:2分
4. 阅读代码(必做)
代码地址:https://gitee.com/changkong569/DataStructure/blob/master/Tree/BPlus/TestBPlusTree.cpp
本篇代码简洁明了,适合初学者阅读。
5. 代码Git提交记录截图