你应该掌握的——树和二叉树

转载 2012年03月28日 10:26:29

我在上课的时候,由于各种原因,上课老师讲的自己总不爱听,现在到火烧眉毛了,才知道这些基础知识的重要性,现在想想,也没有那么的困难。重在理解这些底层的概念,然后考试考的都是一些很简单的概念和计算,在这里我来阐述一下树和二叉树的一些考点。

基础知识一点也不能马虎。所以我们从最基础的开始说起。


以这棵树来说几个基本的概念。


结点的度:一个结点的子树数目称为该结点的度。(例如结点1的结点的度为3,结点2的结点的度为3,结点3的结点的度为0)。

树的度:所有结点度当中,度最高的一个。(上图树的度是3)。

叶子结点:上图应该是:3、5、6、7、9、10

分之结点:除了叶子结点,其他的都称为分之结点,和叶子结点构成互补的关系。(1、2、4、8)

内部结点:分之结点除了根结点以外的。(2、4、8)

父结点:如5号结点就是2号结点的子结点。

子结点:2号结点是5号结点的父结点。

兄弟结点:5、6、7称为兄弟结点,出自同一个父亲2号结点。

这三个概念是一个相对的概念。

层次:0层、1层、2层、3层。

还有一个公式就能做题了:总结点=所有度结点的和+1(应该是父结点)


树的遍历


我们还是根据这图来看看树的三种遍历。

前序遍历先从根部出发,然后由左向右,一颗一颗树来完成遍历。先访问根再访问叶子结点,这就是我画出来的前序遍历图,箭头的方向表示遍历的顺序。a为起点。


结果是:1、2、5、6、7、3、4、8、9、10


后序遍历顾名思义,就是从叶子结点出发,先遍历叶子结点再到根结点,最后到父结点。我画出顺序可能会更直观点。


结果是:5、6、7、2、3、9、10、8、4、1


层次遍历按0层、1层、2层、3层,从左到右来遍历


结果是:1、2、3、4、5、6、7、8、9、10


我们接着就可以来理解二叉树的重要的特性:

我们找五颗二叉树来进行分析:这样分析就简单多了,我都觉得不用分析了,但是还是说说吧。

1、二叉树中,第i层上最多有2的i次方个结点(i>=0)。这个很基本,这也是二叉树和树的区别。

2、深度为K的二叉树至多有2的(k+1)次方 -1个结点(k>=0)。(深度为二叉树中层数最大的叶节点的层数),满二叉树的深度为2,则共有7个结点。

3、对任何一颗二叉树,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1;(一定不要忘了根结点的度也是2)。


二叉树的遍历


前序遍历应该是怎么个流程呢:我们看图。


遍历的结果是:1、2、4、5、7、8、3、6。从根结点分两部分,先把左边的遍历完,都是从左到右的。


中序遍历:

结果是:4,2,7,8,5,1,3,6。


后序遍历:


结果是:4、8、7、5、2、6、3、1


层次遍历:


结果是:1、2、3、4、5、6、7、8

那么树和二叉树就说这么多,我相信掌握这么多,也差不多够用了哦,对于上面的基础知识,要是我有不对的地方,希望大家指出哈。


转自 http://blog.csdn.net/yi_zz/article/details/7396987

你应该掌握的树和二叉树

转载自: http://blog.csdn.net/yi_zz/article/details/7396987   我在上课的时候,由于各种原因,上课老师讲的自己总不爱听,现在到火烧眉毛了,才知...
  • zxenv
  • zxenv
  • 2012年03月31日 21:07
  • 538

你应该掌握的——树和二叉树

我在上课的时候,由于各种原因,上课老师讲的自己总不爱听,现在到火烧眉毛了,才知道这些基础知识的重要性,现在想想,也没有那么的困难。重在理解这些底层的概念,然后考试考的都是一些很简单的概念和计算,在这里...
  • yi_zz
  • yi_zz
  • 2012年03月27日 01:05
  • 17366

[转]你应该掌握的七种回归技术

[转]你应该掌握的七种回归技术
  • lightty
  • lightty
  • 2015年08月24日 11:40
  • 1190

数据结构随笔——二叉树和五个重要性质

二叉树是最常用的数据结构之一,笔者过去一直将关注点放在复杂的树结构(例如红黑树,自平衡树),认为那些才是树的重要应用,但当重新由基本看起,才发现树的基本定中就隐藏着树这一结构的精髓。尽管是些浅薄蠢笨的...
  • PokemonWei
  • PokemonWei
  • 2017年05月08日 11:58
  • 551

Servlet必须掌握的基础知识

1. servlet生命周期   Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。   init():在Servlet的生命周期中,仅执行一次init()...
  • luotuomianyang
  • luotuomianyang
  • 2016年09月07日 20:25
  • 474

【数据结构】树与二叉树的区别

6.二叉树与树的区别? 1)树中结点的最大度数没有限制,而二叉树结点的最大度数为2; 2)树的结点无左、右之分,而二叉树的结点有左、右之分。 7.什么是完全二叉树? 若设二叉树的高度为h,除第 h 层...
  • lxd8731247769
  • lxd8731247769
  • 2015年11月16日 20:43
  • 4838

树和二叉树的转换

树和二叉树是两种不同的数据结构,树实现起来比较麻烦,但是树可以转换为二叉树进行处理,处理完以后再从二叉树还原为树。 下面说说转换的方法: 1. 树转换为二叉树 (1) 树中所有相同双亲结点的兄弟...
  • T_27080901
  • T_27080901
  • 2015年03月12日 20:23
  • 5072

树的高度和深度的区别

对于树的基本概念上理解,对于才接触数据结构的人来说,树的高度和深度是一个容易混淆的知识点,现解释如下: 1.高度 对于高度的理解,我们不管他数据结构什么什么知识,就拿楼房来说,假如一个人提问:楼房...
  • Fanpei_moukoy
  • Fanpei_moukoy
  • 2014年04月16日 10:47
  • 30994

《数据结构》实验五: 树和二叉树实验报告

一..实验目的      巩固树和二叉树的相关知识,特别是二叉树的相关内容。学会运用灵活应用。 1.回树和二叉树的逻辑结构和存储方法,清楚掌握树和二叉树的遍历操作。 2.学习树的相关...
  • XG113223
  • XG113223
  • 2014年12月03日 11:00
  • 825

一般树与二叉树的相互转换

一般来说,直接对一般树做一些相关操作非常对不方便。因此,将一般树转换为二叉树,操作完成后逆转为一般树成为了大部分人对付一般树的方法。 一般树转换二叉树: 1)将每一个结点与他的兄弟结点之间连一条线。 ...
  • qq_36785187
  • qq_36785187
  • 2017年06月10日 16:51
  • 1106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:你应该掌握的——树和二叉树
举报原因:
原因补充:

(最多只允许输入30个字)