博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客作业04--树
阅读量:6086 次
发布时间:2019-06-20

本文共 2052 字,大约阅读时间需要 6 分钟。

1.学习总结(2分)

1.1树结构思维导图

使用思维导图将树结构的知识点串在一起。树中的每个知识点需细化到每个操作如何实现。

1233242-20180505183836279-1135193173.png

1233242-20180511231314426-1009989121.png

1.2 树结构学习体会

树是非线性的结构,感觉它丰富了代码所能构造的结构,因为不是线性结构,所以感觉学起来思路也要宽,更复杂。而且树的知识点感觉相对更多,光一个遍历就有好几种方法,所以现在还有点困难就是不看书和PPT,我有些代码还不能自己独立写出来。

2.PTA实验作业(4分)

本周要求挑选出3道题目书写设计思路、调试过程。设计思路使用伪代码描述。题目选做要求:

不能选6-1
6-4必选
具体书写内容及格式如下:

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

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

1.先序递归函数2.空树返回0;3.if(找到节点的左右孩子都为空,说明为叶子节点){              输出叶子节点;        }4.else   {           递归左孩子;          递归右孩子;      }

2.3 代码截图

1233242-20180505204412387-875644622.png

2.4 PTA提交列表说明。

1233242-20180505204604390-1276975801.png

一开始编译错误是写错了一些字符,后来是没有判断空树的情况。

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

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

1.主函数2.定义两个字符串并输入;3.创建树   * s;4.(创建树的函数)       如果是空树,返回NULL;    for(  int 指针p指向中序序列,遍历中序序列){            如果指针指向了后序序列post+n+1;退出;          }     定义k=p-in;    递归左孩子(post,in,k);    递归右孩子(post+k,p+1,n-k-1);    返回树;5.先序输出;(函数不写);

2.3 代码截图

1233242-20180505210436401-1180889012.png

1233242-20180505210446504-2133475791.png

2.4 PTA提交列表说明。

1233242-20180505210612421-1967085848.png

没有大问题。

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

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

1.定义字符栈和树栈;字符栈先入栈‘#’;2.for   数组不为空{              如果是数字,存入树栈;              否则,如果是字符,存入字符栈;                               此时,如果字符栈已有元素,且字符栈元素优先级大于要存入的字符,将字符出栈和树栈中的数字组成新的树;                              如果小于,直接存入字符栈;                             其他可能性,出栈;         }for循环结束;3.  如果字符栈此时不空;             将字符栈元素出栈并和树栈元素组成新的树;4.计算函数      定义a,b;      树的左右孩子不为空时,返回T->data;      a=递归树的左孩子;      b=递归树的右孩子;      如果是字符元素{               相应计算,不做说明;               除法特别,判断除数是否为0;是的话输出错误;

2.3

1233242-20180512221226665-309372479.png

1233242-20180512221242280-1451421666.png

2.4 PTA提交列表说明。

1233242-20180512221429131-1227136642.png

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

3.1 PTA排名

1233242-20180511230645473-1616485823.png

3.2 我的得分:180

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

这道题是7-5家谱处理选做题

#include 
#include
#include
typedef struct node *Node;struct node { char Name[11]; int space; int Parant;};Node Tree;int n;int Scan(char*);int Trace(int);int judgeParent(int,int);//父子int judgeSibling(int,int);//兄弟int judgeAncestor(int,int);//祖先void work();int Index(char*);int main() { int m; scanf("%d%d",&n,&m); Tree=(Node)malloc(sizeof(struct node)*n); getchar();//清除缓存 for(int i=0; i
=0; i--) { if(Tree[i].space

优点,用了全局变量tree,函数感觉分模块也很明确,在判断是否是对的关系时用了relation数组,感觉整个构思很巧妙,虽然我也还没有特别看懂

5. 代码Git提交记录截图

1233242-20180507143747509-1190721434.png

转载于:https://www.cnblogs.com/yiyeluo0701/p/8994118.html

你可能感兴趣的文章
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>
没有显示器的情况下安装和使用树莓派
查看>>
【android】使用handler更新UI
查看>>
mochiweb 源码阅读(十五)
查看>>
前端面试中的常见的算法问题
查看>>
计算机语言的基本理论
查看>>