码迷,mamicode.com
首页 > 其他好文 > 详细

博客作业04--树

时间:2018-05-05 19:40:46      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:题目   学习   tail   details   集合   info   后缀   while   虚拟   

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提交记录截图
    技术分享图片

博客作业04--树

标签:题目   学习   tail   details   集合   info   后缀   while   虚拟   

原文地址:https://www.cnblogs.com/hbw985609191/p/8992727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!