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

博客作业04--树

时间:2018-05-05 20:46:46      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:分享   com   树结构   参数   等于   遍历   先序   存储   应用   

1.学习总结

1.1树结构思维导图

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

1.2 树结构学习体会

  • 1、树的定义: 树是n个结点的有限集。在任意一个非空的树中:
    (1)有且仅有一个特定的称为根的结点;
    (2)其余结点可以分成m个互不相交的子集,其中每一个子集又是一个树,称为子树。
  • 2、树的存储结构 :数组或链表
  • 3、我觉得树这部分挺难,但是挺有意思的,内容比较多,不容易掌握

    2.PTA实验作业

    题目1:6-4 jmu-ds-表达式树

    设计思路

    建op栈,将#进栈
    建一个树栈tree
    while(表达式未结束)
       if(ch==操作数)生成一个只有根节点的子树并进栈
       if(ch小于op栈顶运算符)
       {
             tree栈弹出两个结点作为树T的左右子树
             再把T放入tree栈
       }
       if(ch等于栈顶运算符) op出栈
       if(ch大于栈顶运算符)  ch进op栈
    end while
    while(op栈顶元素不等于#)
       tree栈弹出两个结点作为树T的左右子树
        再把T放入tree栈
    end while

    代码截图

    技术分享图片
    技术分享图片

PTA提交列表说明

技术分享图片
主要是在创建表达式树的函数中应用创建简易二叉树的函数时将左右子树弄反了= =

题目2:7-1 还原二叉树

设计思路

- 1、创建函数
如果n小于等于0 返回NULL
定义一个字符x=根节点pr[0]
应用函数Fine在In中寻找根节点x的位置并赋给k
递归构造左子树,参数为pre+1,in,k
递归构造右子树,参数为pre+1+k,in+1+k,n-k-1
- 2、求树高度
如果树为空 ,返回高度0
否则 
     递归求左子树高度
     递归求右子树高度
     返回左右子树高度较高的一方并加1

代码截图

技术分享图片

PTA提交列表说明

技术分享图片
递归构造右子树的参数写错了

题目3:7-2 根据后序和中序遍历输出先序遍历

设计思路

- 1、创建函数
如果n小于等于0  返回NULL
令r=后序序列最后一个值即根结点值
b->data=r
遍历中序序列找到根节点的位置并赋给k
递归构造左子树,参数为post,in,k
递归构造右子树,参数为post+k,p+1,n-k-1

- 2、先序遍历
如果树不为空
     输出结点值
     递归先序遍历左子树
     递归先序遍历右子树

代码截图

技术分享图片

PTA提交列表说明

技术分享图片
一开始树的结点值用的是字符表示,结果有错误,换成整数就好了

3.截图本周题目集的PTA最后排名

PTA排名

技术分享图片

我的得分:135

阅读代码

代码Git提交记录截图

博客作业04--树

标签:分享   com   树结构   参数   等于   遍历   先序   存储   应用   

原文地址:https://www.cnblogs.com/wyb123/p/8995604.html

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