DS博客作业05

#1.本周学习总结 ##1.思维导图 ##2.谈谈你对树结构的认识及学习体会

1相对于之前的栈和队列,树的学习难度明显. 相较于之前的线性结构, 树更多的需要应用递归思维. 循环结构用多了之后, 对于转变到递归难以适应, 考虑问题的方式也改变了 2树表示数据表素之间一对多的关系,可以分为二叉树(完全二叉树、满二叉树、平衡二叉树、排序二叉树),红黑树,哈夫曼树等等,遍历的顺序也有很多种:中序遍历, 3先序遍历、后序遍历、层次遍历等等(每一种我们都要掌握),分类较多,应用的范围也很广.

#2.PTA实验作业 ##2.1题目一:6-2 中序输出度为1的结点 ###2.1.1设计思路(伪代码)

1由题目中序输出可知,先左子树,再根,在右子树 2If T!=NULL //树不为空 3递归遍历左子树 4If 右子树==NULL 且左子树!=NULL 或者 左子树==NULL且右子树!=NULL 5输出

###2.1.2代码截图 ###2.1.3提交列表及说明 if的判断条件出错

##2.2题目二:7-1 还原二叉树 ###2.2.1 设计思路

1int Height(int num1,int num2,int lenth,int H) 2if lenth == 0 3 返回 H-1; 4 int len = 0; 5 while(1) 6 { 7 if Str2[num2+len] == Str1[num1] 8 break; 9 10 len++; 11 } 12 应用递归算法 13 int h1 = Height(num1+1,num2,len,H+1); 返回左子树最大高度 14 int h2 = Height(num1+len+1,num2+len+1,lenth-1-len,H+1); 返回右子树最大高度 15 16 返回高度

###2.2.2代码截图 ###2.2.3本题PTA提交列表说明

##2.3 题目3:7-2 根据后序和中序遍历输出先序遍历 (25 分) ###2.3.1 代码思路

1void preorder(int a[], int b[], int n) 2if n不为0 3 后序遍历的最后一个元素为根 4 for i=0 to n 5 if b[i]=根 then m=i为根在中序遍历中的位置 6 输出元素 7 递归调用本函数

###2.3.2 代码截图 ###2.3.3 提交列表 #3.阅读代码 ##3.1 题目 计算一棵树的宽度(并输出每一层的宽度) ##3.2 解题思路

1作者解题思路: 2先创建一个队列,用一个标注变量去标注最开始时队尾的位置,然后用一个循环来操作二叉树,循环体内的操作和层序遍历类似,不同的是,在每趟循环结束后都要来判断上一层是否便利完成(用那个标注变量和队首的位置比较)如果便利完成,则刷新最大宽度。

##3.3 代码截图

##3.4 学习体会 通过此题,加成了对于层次遍历的做法,相对于前中后序遍历来说,层次遍历需要用队列辅助实现,对于代码的操作多了许多

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

1.学习shell脚本之前的基础知识

【什么是shell】简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。linux发布版本(Redhat/CentOS)系统默认安装的shell叫做bash,即BourneAgainShell,它是sh(BourneShell)的增

MySQL知识体系——索引

    本文直切主题,针对InnoDB引擎描述索引及优化策略。在开始之前,需要读者了解:1)二叉查找树(包括23查找树、红黑树等数据结构)2)MySQL的InnoDB引擎基础知识索引初探要了解索引,当然要了解其数据结构。树有很多应用,流行的用法之一是包括UNIX和DOS在内的许多常用操作系统中的目录结构,二叉查找树又是Java中两种集合

C语言博客作业02

1.本章学习总结1.1思维导图!(https://img2018.cnblogs.com/blog/1474714/201810/147471420181027133155045695245310.png)1.2本章学习体会及代码量学习体会1.2.1

DS博客作业07

1.本周学习总结(02分)1.思维导图!(https://img2018.cnblogs.com/blog/1475011/201906/147501120190623084755365640501810.png)2.谈谈你对查找运算的认识及学习体会。本章主要学习了多种的数据查找方法,以及各种查找方法的评价指标。

OO(Java)第一阶段作业总结

前言     本次博客主要是针对面向对象编程学习(Java)第一阶段的总结与反思,以PTA平台的练习作业为总结评估对象,望不断学习,不断提升。一.作业过程总结_①__总结三次作业之间的知识迭代关系_• 第一次作业整体难度较小,五道试题都是基础结构中的常规类型,考察了选择、循环结构、字符编码转换以及数据精确度