DS博客作业05

Wesley13
• 阅读 431

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

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

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

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

###2.1.2代码截图 DS博客作业05 ###2.1.3提交列表及说明 DS博客作业05 if的判断条件出错

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

int Height(int num1,int num2,int lenth,int H)
if lenth == 0 
    返回 H-1;
    int len = 0;
    while(1)
    {
        if  Str2[num2+len] == Str1[num1]
        break;
       
           len++;      
    }
     应用递归算法
    int h1 = Height(num1+1,num2,len,H+1);   返回左子树最大高度 
    int h2 = Height(num1+len+1,num2+len+1,lenth-1-len,H+1);  返回右子树最大高度
 
    返回高度

###2.2.2代码截图 DS博客作业05 DS博客作业05 ###2.2.3本题PTA提交列表说明 DS博客作业05

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

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

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

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

##3.3 代码截图 DS博客作业05 DS博客作业05

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

点赞
收藏
评论区
推荐文章
布袋罗汉 布袋罗汉
1年前
Xmind 2022 for Mac(思维导图软件)
XMind2022是一款流行的思维导图软件,它可以帮助用户更好地组织思路、提高工作效率和创造力。以下是XMind2022的一些主要功能:多种思维导图类型:XMind2022支持多种思维导图类型,包括鱼骨图、思维导图、逻辑图、组织结构图等,可以满足不同用户的
Stella981 Stella981
2年前
React的虚拟DOM
上一篇文章中,DOM树的信息可以用JavaScript对象来表示,反过来,可以根据这个用JavaScript对象表示的树结构来真正构建一颗DOM树。用JavaScript对象表示DOM信息和结构,当状态变更的时候,重新渲染这个JavaScript的对象结构,当然这样做,其实并没有更新到真正的页面上。但是可以用新渲染的对象树和旧的树进行对比,记录这两棵树
Wesley13 Wesley13
2年前
1.学习shell脚本之前的基础知识
【什么是shell】简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。linux发布版本(Redhat/CentOS)系统默认安装的shell叫做bash,即BourneAgainShell,它是sh(BourneShell)的增
Wesley13 Wesley13
2年前
MySQL知识体系——索引
    本文直切主题,针对InnoDB引擎描述索引及优化策略。在开始之前,需要读者了解:1)二叉查找树(包括23查找树、红黑树等数据结构)2)MySQL的InnoDB引擎基础知识索引初探要了解索引,当然要了解其数据结构。树有很多应用,流行的用法之一是包括UNIX和DOS在内的许多常用操作系统中的目录结构,二叉查找树又是Java中两种集合
Wesley13 Wesley13
2年前
C语言博客作业02
1.本章学习总结1.1思维导图!(https://img2018.cnblogs.com/blog/1474714/201810/147471420181027133155045695245310.png)1.2本章学习体会及代码量学习体会1.2.1
Wesley13 Wesley13
2年前
DS博客作业07
1.本周学习总结(02分)1.思维导图!(https://img2018.cnblogs.com/blog/1475011/201906/147501120190623084755365640501810.png)2.谈谈你对查找运算的认识及学习体会。本章主要学习了多种的数据查找方法,以及各种查找方法的评价指标。
Stella981 Stella981
2年前
OO(Java)第一阶段作业总结
前言     本次博客主要是针对面向对象编程学习(Java)第一阶段的总结与反思,以PTA平台的练习作业为总结评估对象,望不断学习,不断提升。一.作业过程总结_①__总结三次作业之间的知识迭代关系_• 第一次作业整体难度较小,五道试题都是基础结构中的常规类型,考察了选择、循环结构、字符编码转换以及数据精确度
Stella981 Stella981
2年前
MindMapper中多变的主题形状该怎么实现
我们对思维导图使用越熟练,就会对思维导图的美观越在乎,一个美观的思维导图不但能够吸引更多的注意力,还能够加强人们对思维导图的印象,加强记忆。MindMapper中文版(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.mindmapper.cc%2F)的思维导图美化功能足以
燕青 燕青
5个月前
Macos思维导图推荐:XMind for mac中文版 支持M1
XMindforMac是一款强大的思维导图软件,专为Mac用户设计。它可以帮助用户创建、组织和编辑复杂的思维导图,以清晰地表达思路和概念。XMindforMac的主要特点和功能包括:丰富的模板选择:XMind提供了多种思维导图模板,包括组织结构图、流程图、
何婆子 何婆子
3个月前
左程云_算法与数据结构进阶班
左程云算法与数据结构进阶班download》https://chaoxingit.com/4191/算法与数据结构是计算机科学中的重要领域,对于进阶的学习者来说,有以下一些建议:深入理解基础:对于基本的数据结构和算法,如数组、链表、栈、队列、树、图等,需要