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

博客作业04--树

时间:2018-05-05 20:45:26      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:流程图   a*   返回   count   思维   字符转换   oid   分享   二叉树   

1.学习总结

1.1树结构思维导图

1.2 树结构学习体会

建树的函数一直写不出来,上机考试的时候都是编程题,都需要建树

2.PTA实验作业

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

2.2 设计思路(伪代码或流程图)

void InitExpTree(BTree &T,string str) ; //建表达式的二叉树
定义树栈 s1 存储数字,字符型栈 s2 存储运算符
‘#’入栈s2;
  while( 字符串不空)
    if (str[i] 为数字) 
          创建树节点,赋予str[i]的值,并置其左右孩子为空后再次入栈s1;
    else 
      调用Precede函数
      case ‘<‘     运算符入栈s2;
      case ‘=‘      s2栈顶元素出栈
      case ‘>‘      创建新的树节点并赋予s2栈顶元素值,右左孩子分别取s1栈顶元素后再次入s1栈;
while (栈s2中仍有运算符)
     创建新的树节点并赋予s2栈顶元素值,右左孩子分别取s1栈顶元素后再次入s1栈;
double EvaluateExTree(BTree T);//计算表达式树
定义浮点型数 a b ;递归把字符转换成数字;a,b分别存储树节点的左右子树;
while (树节点存在)
    case ‘+‘     返回 a+b;
    case ‘-‘       返回 a-b;
    case ‘*‘       返回a*b;
    case ‘/‘  
             if(b不为0) 返回a/b;

2.3 代码截图

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

2.4 PTA提交列表说明

技术分享图片

2.1 题目2:7-8 jmu-ds-二叉树叶子结点带权路径长度和

2.2 设计思路(伪代码或流程图)

void createtree(string str,int i,btree &bt);//创建树
定义链表 str 存储输入的字符,树形指针 *bt
getchar()输入第一个字符,其余字符存储到 str 中;
while (str[i++] 不为‘#‘)
       建立新节点bt;
       将str[i]的值赋予bt;
       递归遍历bt的左子树和右子树;
void count(btree bt,int n);//求叶子节点带权路径长度和
定义整型字符 h 存储叶子节点所在的高度,整型字符 s 存储运算结果
     if (bt的左右孩子节点都为空)
         bt节点字符数转换为数字a;
         s=s+a*高度;
     if (bt的左孩子节点不为空或bt的右孩子节点不为空)
        递归遍历查找叶子节点;

2.3 代码截图

技术分享图片

2.4 PTA提交列表说明

技术分享图片

2.1 题目3:6-3 先序输出叶结点

2.2 设计思路(伪代码或流程图)

void PreorderPrintLeaves( BinTree BT );//先序输出叶结点
先序序列根,左,右
如果传下来根节点就是空,直接返回;如果存在子节点,一直访问
if(根存在)访问左子树,若存在继续递归访问左子树
                 访问右子树 ,若存在继续递归访问右子树
if(左右子树都不存在即为叶节点)输出叶节点

2.3 代码截图

技术分享图片

2.4 PTA提交列表说明

技术分享图片

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

3.1 PTA排名

技术分享图片

3.2 我的得分:2分

4. 阅读代码

```

博客作业04--树

标签:流程图   a*   返回   count   思维   字符转换   oid   分享   二叉树   

原文地址:https://www.cnblogs.com/lbhd/p/8995711.html

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