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

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

1.学习总结

1.1树结构思维导图

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

 

1.2 树结构学习体会

谈谈你对树结构认识,学习这个结构是否遇到哪些困难,树结构可以解决的问题。

1.树是一种较为抽象的非线性结构,是较难点,部分固定的套路公式要牢记,灵活运用。

2.课堂上的知识都能听懂,但是一到打代码就开始慌了,需要加强代码的练习。

3.一些代码可以在书本上找到范例,要多研究课本。

2.PTA实验作业

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

2.1 题目1:7-1 还原二叉树

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

/*RestoreTree函数*/建立头结点 head;for i=0;i小于n-1时;  if 字符串z第i位等于字符串x的第x1位且i不等于z1;     对head的左孩子进行递归运算;  if 字符串z第i位等于字符串x的第x1位且i不等于z2;     对head的右孩子进行递归运算;break;return;

 

 

 

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

2.4 PTA提交列表说明

编译错误:结构体没有设置好,导致编译错误。

答案错误:建树函数忘记return p。

编译错误:struct Node、mallco语句出错。

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

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

/*求树的高度*/设置 lchild,rchild;if 树为空 return空;else遍历lchild=GetHeight;遍历rchild=GetHeight;return lchild和rchild中值较大的值+1;

 

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

 

2.4 PTA提交列表说明

 这题较为简单,可以在书上找到范例。

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

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

/*InitExpTree函数*/设置栈 op treepush '#'while str[i]不为空if In函数为假建立新节点,push Telse switchcase '<' 入栈str[i] breakcase '=' 栈顶出栈 breakcase '>' 建立新节点T,将数据存入树中并出栈数据 breakwhile 栈顶不为'#'建立新节点T,将数据存入树中并出栈数据

 

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

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

本次题目集总分:285分

必做题共:230分

3.1 PTA排名截图

 

3.2 我的总分:230分——2.5分

本题评分规则:

(1)2个题目集PTA总分285分:3分(全部题目都做) (2)PTA总分在230分--340分:2.5分(必做题全部做完,选做题做部分) (3)PTA总分在180--230分:2分(必做题大部分做完) (4)PTA总分在130--180分:1.5分 (5)PTA总分在105分-130分:1分 (6)PTA总分在105分以下:0分

4. 阅读代码(必做)

 

1 #include 
2 #include
3 #include
4 char a[1000]; 5 int ant = 0,c = 0; 6 typedef struct Node 7 { 8 char Data; 9 struct Node *Left,*Right;10 }Node;11 Node *CreatNode()12 {13 Node *p = (Node *)malloc(sizeof(Node));14 p -> Left = p -> Right = NULL;15 return p;16 }17 Node *CreatTree()18 {19 if(a[ant] == '#')20 {21 ant ++;22 return NULL;23 }24 Node *head = CreatNode();25 head -> Data = a[ant ++];26 head -> Left = CreatTree();27 head -> Right = CreatTree();28 if(head -> Left == NULL && head -> Right == NULL)c ++;29 return head;30 }31 void InOrder(Node *T)32 {33 if(T == NULL)return;34 InOrder(T -> Left);35 putchar(T -> Data);36 InOrder(T -> Right);37 }38 int main()39 {40 scanf("%s",a);41 Node *head = CreatTree();42 InOrder(head);43 putchar('\n');44 putchar('0'+c);45 }

 

地址:优点:运用递归的方法,将程序简化,找到叶子结点后c++。

5. 代码Git提交记录截图

 

转载于:https://www.cnblogs.com/muhaoran/p/8996016.html

你可能感兴趣的文章
磁盘空间不足
查看>>
资深编曲人常用的软件是哪款呢?
查看>>
vim插件——rainbow
查看>>
Web开发中 前端路由 实现的几种方式和适用场景
查看>>
python3实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
查看>>
梳理一份机器学习的学习目录
查看>>
Java并发编程:深入剖析ThreadLocal
查看>>
Mac OSX 中java7 java8环境的配置
查看>>
我所理解的JDK自动装箱和拆箱
查看>>
30分钟入门Java
查看>>
elasticsearch学习——环境搭建2
查看>>
Ruby中 局部变量(local variable) 块变量(block variable) 与块局部变量(block local variable)...
查看>>
Android零基础入门第55节:ImageSwitcher和TextSwitcher使用
查看>>
网页被篡改怎么防护?
查看>>
数据科学求职过程中总结的四点经验
查看>>
git代码首次提交
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Dart服务器端 shelf_route包
查看>>
spring security(四)
查看>>
js中return、return false、return true的区别
查看>>