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

第04次作业-树

时间:2018-05-05 20:48:47      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:csdn   不同   初始化   功能   二叉树   答案   截图   .com   局部变量   

一.学习总结

1.1树结构思维导图

技术分享图片

1.2树结构学习体会

  我对树的认识:与前面几章的线性表不同,树是一种非线性结构。

  困难:主要在于不懂如何将自己的思路写成代码,道理感觉都懂,但还是不会打代码.....

  树结构可以解决的问题:表达式求解、解决亲戚关系问题等等

二.PTA实验作业

 题目一:6-1 jmu-ds-二叉树操作集

1.题目要求

技术分享图片

2.设计思路

void CreateBTree(BTree &BT,string str){
    初始化一个队列 Q;      //用于存放已建立左或右子树关系的节点
    定义i;               //控制字符数组
    定义BTree类型的T;
    读入str[0];
    if(str[0] is not \0)
        给BT分配存储空间并将str[0]赋给T->data,且置空其左右孩子;
        将节点T进队;
    else
        BT=NULL;
    while(Q is not empty){
        访问队首将其赋给T并出队;
      i++;
      if(str[i] is #) 
          T->lchild=NULL;
      else{
          给T分配存储空间并将str[i]赋给T->data,且置空其左右孩子;
          将节点T的左孩子进队;
      }    
      i++;
      T的右孩子同左孩子;
    }
}

3.代码截图

技术分享图片

技术分享图片

 

4.PTA提交列表

技术分享图片

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

 1.题目要求

技术分享图片

2.设计思路

创建二叉表达式树
定义树栈 s1; //用于存储运算数
定义字符型栈 s2;//用于存储运算符
定义整型变量i;//控制字符数组
将‘#’入栈s2;
while 字符串不空
    if str[i] 为数字
      then 创建新节点T,将str[i]的值赋给T->data,并置空其左右孩子
    将节点T再次入栈s1;
else 调用Precede函数比较栈顶运算符和当前运算符的优先级 if ‘<’ then 运算符入栈s2; if= then s2栈顶元素出栈 if> then 创建新节点T并将s2栈顶元素值赋给T->data,右左孩子分别取s1栈顶元素后再次入栈s1; end while 栈s2不空 创建新节点T并赋予其s2栈顶元素值,右左孩子分别取s1栈顶元素后再次入s1栈; end

 

3.代码截图

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

4.PTA提交记录说明

 技术分享图片

粘贴的时候不小心贴了全部代码...

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

1.题目要求

技术分享图片

2.设计思路

trans函数将顺序存储转为链式存储
int displeaf(btree bt,int h){
    定义静态局部变量s保存带权路径的长度
    if(bt!=NULL){
      if(bt->lchild!=NULL){
          displeaf(bt->lchild,h+1);    
      }
      if(bt->rchild!=NULL){
          displeaf(bt->rchild,h+1);    
      }
      if(叶子节点){
          s+=权值乘高度(高度由递归次数决定)
      }
}        

 

3.代码截图

 技术分享图片

技术分享图片

技术分享图片

4.PTA提交记录说明

技术分享图片

 一开始我将节点的数据元素定义为整型,忽略了“#”,导致答案错误,后来改为char,在计算s时用减去‘0’来将数字字符转为数字就对了。

三.PTA排名

1.PTA排名截图:

技术分享图片

技术分享图片

2.我的总分:2分

四.阅读代码

代码功能:求二叉树宽度

代码优点:思路清晰明了且算法简单

代码截图:

技术分享图片

代码地址:https://blog.csdn.net/K346K346/article/details/51076268

五.GIT提交记录

 技术分享图片

技术分享图片

 

第04次作业-树

标签:csdn   不同   初始化   功能   二叉树   答案   截图   .com   局部变量   

原文地址:https://www.cnblogs.com/chenyutin/p/8994139.html

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