博客作业04--树

1.学习总结(2分)

1.1树结构思维导图

1.2 树结构学习体会

  • 树这一章节比较复杂,知识点繁多,结合了递归的知识所以代码阅读起来会有障碍,难以理解,所以学起来比较吃力,而且很多经典的算法理解的不是很透彻解决pta上的问题时还要多次翻阅课本回顾代码,是需要多花时间学习的一个章节。

2.PTA实验作业(4分)

2.1 题目1:6-2 求二叉树高度

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

递归遍历左右子树
if(左子树高度大于右子树高度)
   返回左子树高度+1
否则
   返回右子树高度+1
当BT=NULL,返回0,递归调用结束

    

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

2.1 题目2:7-3 jmu-ds-二叉树层次遍历

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

利用函数建树
树的左孩子为该节点i的:2i      树的右孩子为该节点i的:2i+1
左子树递归:bt->lchild =CreateBTree(str,2*i); 
右子树递归:bt->rchild =CreateBTree(str,2*i+1); 	
递归出口:字符下表i超过字符长度   或  str[i]为#;

建立队列将根节点入栈
while(队不空)
{
     取队头节点并输出内存元素
     队头元素出队
      if(左孩子不空){
	    	左孩子进队;
      }
      if(右孩子不空){
	    	右孩子进队;
      }

}
 

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

  • 未判断树空情况

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

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

定义op为字符串栈,s树结点栈
while(遍历字符串)
{
      if (str[i]不为运算符)
           则将str【i】赋给树节点后入栈
      否则{
            判断运算符优先级
                 栈顶优先等级低:将str[i]进栈,i下指
                 优先等级相等:处在栈顶字符,i下指
                 栈顶有限等级高:op栈顶元素出栈赋给节点T,s出栈两次分别做T节点左右孩子,T后入s栈
}
while(op栈顶元素不为#){
           op栈顶元素赋给T的数据域
           s栈不为空时出栈两次分别做T节点左右孩子
           将节点T入s栈
  }
计算表达式树{
         if(左右孩子不为空)
               则把T->data转换成数字 
          利用递归将左右孩子转化为数字存入a,b中
      判断节点T的数据域
           +:返回a+b
            -:返回a-b
            *:返回a*b
           '/':if(b<1&&b-1)提示错误
       退出



    

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

2.4 PTA提交列表说明。

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

3.1 PTA排名

3.2 我的得分:1.5

4. 阅读代码(必做,1分)

#include <bits/stdc++.h>
using namespace std;
int main()
{
    priority_queue<int,vector<int>,greater<int> >l;  
    int n;
    cin>>n;
    for(int i=0;i<n;i++)/// 
    {
        int t;
        cin>>t;
        l.push(t);
    }
    int sum=0;   
     while( q.size() > 1 ) {
        int first = q.top();
        q.pop();

        int second = q.top();
        q.pop();

        sum += first + second;
        q.push( first + second );
    }
    printf("%d\n",sum);
}

    
  • (pta修理牧场)这段代码用了优先队列,每次遍历队列时可以将队列中的最小和次小值出队后相加,结果再入队,不同于普通队列的操作,能够高效的解决修理牧场的问题

5. 代码Git提交记录截图

posted @ 2018-05-05 19:55  three。g  阅读(305)  评论(3编辑  收藏  举报