我的软考之路(四)——数据结构和算法(2)树和二叉树

上鲍恩描述了数据结构的线性结构,我们引入非线性结构本博客—树和二叉树。我想向大家介绍一些基本概念树,树遍历,然后介绍了二叉树的概念和特征。和二叉树遍历。叉树的对照,总结。

树为了描写叙述现实世界的层次结构,树结构中一个数据元素能够有两个或两个以上的直接后继元素。

树的基本概念:

树的概念是学习树的关键所在。掌握了树的基本概念,学会树与二叉树,so easy。

我通过一棵树来了解树的基本概念。例如以下图

1、结点的度

结点的度是子结点的个数。比如:结点1有三个字结点2,3,4,所以结点1的度为3。

2、树的度

树的度等于全部结点度中度最高的值。比如:上图中结点度最高为3,所以树的度为3。

3、叶子结点

叶子结点是度为0的结点即没有子结点的结点。比如:上图中3,5,6,7,9。10。

4、分支结点

分支结点是除了叶子结点。树中的其它全部结点。

比如:上面树的分支结点为1,2,4,8。

5、内部结点

内部结点是除了根结点以及叶子结点或在分支结点的基础之上在去掉根结点。比如:上面树的内部结点为2,4,8。

6、父结点、子结点、兄弟结点

父节点、子结点和兄弟结点是相对而言的。比如:结点1是结点2。3。4的父节点,结点2。3,4也是结点1的子结点。结点2,3,4又是兄弟结点。

7、层次

图中我们已经表出来了。根为第一层。根的孩子为第二层,依此类推,若某结点在第i层。则其孩子结点在第i+1层。

树的遍历

树的遍历特别简单,我们还是以上面的树为例:

1、前序遍历

基本思想:前序遍历就是先訪问根结点。再訪问叶子结点。

图中树的前序遍历为:1,2。5,6。7,3,4,8。9,10。

2、后序遍历

基本思想:本后序遍历就是先訪问子结点,再訪问根结点。

图中树的后序遍历为:5,6。7,2,3,9,10,8,4。1。

3、层次遍历

基本思想:从第一层開始,依此遍历每层,直到结束。

图中树的层次遍历为:1,2。3,4,5。6,7,8。9,10。

二叉树的一些相关概念和特性

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaml1cWl5dWxpYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

学习二叉树的特性差点儿能够帮助我们解决全部的二叉树问题,在学习二叉树特性一定要通过上面给出的二叉树进行实践,实践出真理,同一时候,印象也会更深刻。

一般二叉树性质:

  1. 在非空二叉树的k层上。至多有2k个节点(k>=0)
  2. 高度为k的二叉树中,最多有2k+1-1个节点(k>=0)
  3. 对于不论什么一棵非空的二叉树,假设叶节点个数为n0,度数为2的节点个数为n2。则有: n0 = n2 + 1

全然二叉树性质:

  1. 具有n个节点的全然二叉树的高度k为[log2n]
  2. 对于具有n个节点的全然二叉树,假设依照从上(根节点)到下(叶节点)和从左到右的顺序对二叉树中的全部节点从0開始到n-1进行编号,则对于随意的下标为k的节点,有:
  • 假设k=0,则它是根节点。它没有父节点。假设k>0,则它的父节点的下标为[(i-1)/2];
  • 假设2k+1 <= n-1,则下标为k的节点的左子结点的下标为2k+1;否则,下标为k的节点没有左子结点.
  • 假设2k+2 <= n-1,则下标为k的节点的右子节点的下标为2k+2;否则,下标为k的节点没有右子节点

满二叉树性质:

在满二叉树中,叶节点的个数比分支节点的个数多1

二叉树遍历

1、前序遍历(与树的前序遍历一样)

基本思想:先訪问根结点,再先序遍历左子树。最后再先序遍历右子树即根—左—右。

图中前序遍历结果是:1,2,4。5,7。8,3,6。

2、中序遍历

基本思想:先中序遍历左子树,然后再訪问根结点。最后再中序遍历右子树即左—根—右。

图中中序遍历结果是:4,2,7,8。5。1,3,6。

3、后序遍历

基本思想:先后序遍历左子树,然后再后序遍历右子树,最后再訪问根结点即左—右—根。

图中后序遍历结果是:4,8。7,5,2。6,3,1。

4、层次遍历(与树的层次遍历一样)

基本思想:从第一层開始,依此遍历每层,直到结束。

图中层次遍历结果是:1,2。3,4。5,6。7。8。

树与二叉树差别

1、树能够有多个子结点。二叉树最多仅仅能两个结点。

2、树中的子结点是无序的,二叉树是分左子结点和右子结点。

3、二叉树不是特殊树。而是独立的数据结构。

总结

这篇博文都是树的基本内容,这些基本内容能够帮助你更加深刻的理解树的其它内容。仅仅要你能努力,世界充满爱。

兴许博客的更新列表,敬请期待。

我的软考之路(一)——开篇(已更新)

我的软考之路(二)——J2SE宏观总结(已更新)

我的软考之路(三)——数据结构与算法(1)之线性表(已更新)

我的软考之路(四)——数据结构与算法(2)之树与二叉树(已更新)

我的软考之路(五)——数据结构与算法(3)之图(已更新)

我的软考之路(六)——数据结构与算法(4)之八大排序(已更新)

我的软考之路(七)——数据结构与算法(5)之查找(已更新)

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-13 16:26:13

我的软考之路(四)——数据结构和算法(2)树和二叉树的相关文章

计算机软考笔记之《数据结构与算法》

1.线性结构 (1)线性表 ①线性表的定义 ②线性表的存储结构 ③线性表的应用 (2)栈和队列 ①栈 ②队列 (3)串 ①串的定义及基本运算 ②串的存储结构 2.数组和矩阵 (1)数组 (2)矩阵 3.树和图 (1)树 ①树的定义 ②二叉树的定义和基本运算 ③二叉树的性质 ④二叉树的存储结构 ⑤二叉树的遍历 ⑥最优二叉树 ⑦二叉查找树 (2)图 ①图的定义及术语 ②图的存储结构 4.常用算法 (1)算法概述 ①算法的基本概念 ②算法与数据结构 ③算法的描述 ④算法效率 (2)排序算法 ①排序的基

软考之路--像树一样活着

俞敏洪说:我们每一个人,都应该像树一样的成长,即使我们现在什么都不是,但是只要你有树的种子,即使你被踩到泥土中间,你依然能够吸收泥土的养分,自己成长起来.当你长成参天大树以后,遥远的地方,人们就能看到你:走近你,你能给人一片绿色.活着是美丽的风景,死了依然是栋梁之才,活着死了都有用.这就是我们每一个同学做人的标准和成长的标准,开头小编先罗嗦一下,给各位小伙伴来一段心灵鸡汤,今天我们的知识点就从树开始说起. 树,原指木本植物之总名,主要由根.干.枝.叶.花.果组成.随着计算机的发展,在数据结构中树

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次

我的软考之路(六)——数据结构与算法(4)之八大排序

排序是编程的基础,在程序中会常常使用,好的排序方法能够帮助你提高程序执行的效率,所以学好排序,打好基础,对于程序的优化会手到擒来.不管你的技术多么强,假设没有基础也强不到哪去. 不多说了,我们直接进入今天的主题. 总有人说排序非常难,可是我总认为非常easy,我们仅仅须要了解基本思想就好了,通过简单的样例来加深理解. 1.直接插入排序 (1)简单介绍:直接插入排序,从字面意思能够看出,直接插入数据完毕排序. (2)基本思想:在插入第i个数时,如果前i-1数已经排好序了,仅仅须要将第i个数插入到i

软考之路(四)---软件工程一 概念模型,逻辑模型,物理模型

自从接触到数据库到现在这三个概念大家理解的还有些不清楚,今天来为大家解答疑惑,共同提高,结合生活理解 概念模型        概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经过分析和总结,提炼出来的用以描述用户业务需求的一些概念的东西.如销售业务中的"客户"和"定单",还有就是"商品","业务员". 用USE  CASE(用例图)来描述就是:"业务员"与"客户"就购买&qu

我的软考之路(九)——总结篇

经过两个月的备战,软考总算结束了.软考虽然结束了,但是还需要简单的总结一下得与失.我从时间安排,到讲课做真题简单的回顾一下软考的整个过程. 时间安排: 对于时间的安排,整个小组成员每个人都有自己的看法,我就不在这里吐槽了.对于我来说,时间安排有点仓促,看书的时间是拿晚上的休息时间补过来的.看书让我将课本的概念性的知识简单的过了一遍,即补充了当初学习的不足,也恶补一下基本知识,不管对于软考,还是对于后面的继续学习都是有帮助的. 时间安排,没有什么合理与不合理.以松散的状态完成一项任务的时间是合理的

软考之路--计算机背后的故事

文法:1.法制:法规. 2.文章的作法. 3.语法.语言的结构方式.包括词的构成和变化﹐词组和句子的组织.文法即文章的书写法规,一般用来指以文字.词语.短句.句子的编排而组成的完整语句和文章的合理性组织.这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起. 二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的"文法"跟眼前的这个"她"有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和