博客作业04--树

1.学习总结(2分)
1.1树结构思维导图

1.2 树结构学习体会
抽象地说,基本上有序列的地方就可以应用树,因为树结构即是一种序列索引结构。
树的操作大量运用到了递归,而我对递归还是不太理解。
树结构可以提高算法的效率,节约时间。
树可以实现表达式的转换,二分查找等

2.PTA实验作业(4分)
2.1 题目1:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)

op操作符栈,s树结点栈
while(字符串未遍历完) 
{
	if(ch==操作数)
	生成一个只有根结点的子树T;s.push(T)
	if(ch==运算符)
	{
		if(op栈顶运算符>ch)
		{
			s栈出栈两个结点t1,t2
			T->lchild=t2; 
			T->rchild=t1; //进行左右子树连接
			op.pop()
			s.push(T)
		}
		else if(op栈顶运算符<ch)
		op.push(ch)
		else if(op栈顶运算符==ch)
		op.pop()
	 } 
} 
while(op栈不空)
{
	s栈出栈两个结点t1,t2
	T->lchild=t2; 
	T->rchild=t1; //进行左右子树连接
	op.pop()
	s.push(T)
}

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

刚开始树建不起来,然后用后缀做,先转后缀再计算,然后后来参考了一下郑伟的代码,发现我只是i控制错了,就改对了

2.1 题目2:7-1 还原二叉树
2.2 设计思路(伪代码或流程图)

1.在中序序列中找到根结点*pre的位置k,找到后退出循环
2.确定根结点在中序序列的位置 
3.递归构造左子树
4.递归构造右子树 

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

建树的时候忘记return结点了。

2.1 题目3:7-3 jmu-ds-二叉树层次遍历
2.2 设计思路(伪代码或流程图)

先将根结点进队,
队不空时循环:
pop(p);访问p;
if p有左孩子,左孩子结点进队
if p有右孩子,右孩子结点进队
重复以上操作直至队空 

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

空格忘记控制

3.截图本周题目集的PTA最后排名(3分)
本次题目集总分:285分
必做题共:230分

3.1 PTA排名

3.2 我的得分:230

  1. 阅读代码(必做,1分)
    题目:利用树型结构求解集合的幂

他运用到了树的思想却没去建树,方便了许多,有时候运用虚拟树可以节约很多时间
代码来源:[https://blog.csdn.net/arvin_success/article/details/48327035]

  1. 代码Git提交记录截图
posted @ 2018-05-05 19:09  夜雨生虹  阅读(159)  评论(1编辑  收藏  举报