• 博客作业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提交记录截图
  • 相关阅读:
    vue插件编写与开发
    http状态码解读
    JavaScript 在HTML中的加载顺序
    vue props的理解
    vue项目中使用scss
    [LeetCode] 57. 插入区间
    [LeetCode] 55. 跳跃游戏
    [LeetCode] 56. 合并区间
    [LeetCode] 54. 螺旋矩阵
    [LeetCode] 53. 最大子序和
  • 原文地址:https://www.cnblogs.com/hbw985609191/p/8992727.html
Copyright © 2020-2023  润新知