Loading

第04次作业-树

1.学习总结

1.1树结构思维导图

 

1.2 树结构学习体会

 1.2.1对于树的认识:

树是数据结构中比较重要也是比较难理解的一类存储结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。

对于树的定义有这么一个递归定义:

①单个结点是一棵树,树根就是该结点本身。

②如果一个结点P的所有子节点都是子树的根,那P也是一个根。

③空集也是树,称为空树。空树中没有结点。

对于第二句话一直不是很能理解。

1.2.2学习中遇到的困难:

①最简单的树都不懂的如何在代码上建立出来。

②都说树的学习过程中对于递归思想的体会很重要,但是我还是迟迟不能理解递归这个思想的真正含义,只明白递归要有自身的调用及返回值。

③还有前面栈、队列这些线性表知识的欠缺。

1.2.3树的结构可以解决的问题

树在文件系统、编译器、索引以及查找算法中有很广的应用

 

2.PTA实验作业

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

本题要求用层次法创建二叉树,层次法输入序列是按树的从上到下从左到右的顺序形成,各层的空节点用字符 #表示,如:

图片1.png

这颗树对应的层次字符串序列为ABD#C#E##F###,即结点的空孩子用#表示。

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

 

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

2.4 PTA提交列表说明。

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

 

  • 输入一行中缀表达式,转换一颗二叉表达式树,并求解.
  • 表达式只包含+-*/运算符,操作数只有一位,且为整数(有兴趣同学可以考虑负数小数,两位数做法)。按照先括号,再乘除,后加减的规则构造二叉树。
  • 如图所示是"1+(2+3)*2-4/5"代数表达式对应二叉树,用对应的二叉树计算表达式的值。 转换二叉树如下:

 

表达式二叉树.png

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

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

2.4 PTA提交列表说明。

一个。cpp:在函数“双重评估树(BTree)”中:

一个。cpp:153:9:警告:未使用变量sum [- wunusd -variable]

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

本题要求按照先序遍历的顺序输出给定二叉树的叶结点。

函数接口定义:

void PreorderPrintLeaves( BinTree BT );

其中BinTree结构定义如下:

 

typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
    ElementType Data;
    BinTree Left;
    BinTree Right;
};
函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符。

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

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

2.4 PTA提交列表说明。

&&最初的时候写成||导致部分正确。

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

3.1 PTA排名截图

算是很后面了emmm

3.2 我的总分:

PTA总分105分(1分)

4. 阅读代码(必做)

http://data.biancheng.net/view/33.html

对哈夫曼树有一个很好的讲解,从介绍开始到讲解最后再到代码实现,

一步步,对于新手来说很不错!

5. 代码Git提交记录截图

 

posted @ 2018-05-05 20:12  Kingwan  阅读(338)  评论(0编辑  收藏  举报