笔记:树的认识

Posted wozaixuexi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记:树的认识相关的知识,希望对你有一定的参考价值。

笔记:树的认识

 


技术分享图片

基本常识

  • 结点1为2、3、4的父结点,

  • 结点2、3、4是结点1的子结点。

  • 结点2、3、4也是兄弟结点。

  • 因为他们是同一个父结点。

  • 同是结点2又是结点5、6的父结点

  • 结点3没有子结点,所以他是叶结点

  • 结点4又是结点7的父结点。

从根结点到某个子结点所经过的所有结点称为这个子结点的祖先。

比如:结点1,4,7结点8的祖先

以某个结点为根的子树中的任一结点都是该结点的子孙。

比如:结点7、8、9是结点4的子孙。结点4、7、8、9是结点1的子孙,实际上除结点1以外的结点都是结点1的子孙。

树的定义:(非线性数据结构)

一棵树(tree)是由n(n>0)个元素组成的有限集合,其中:

(1)每个元素称为结点(node);比如上图中的1、2、3、4、5......

(2)有一个特定的结点,称为根结点或根(root);上图中的1

(3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限

集合,而每个子集又都是一棵树(称为原树的子树)

基本概念:

度:

树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如左图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。

深度:

树的深度——定义一个树的根结点的层次为1,其他结点的层次等于它的父结点的层次数加1。比如结点2、3、4的层次为2,结点8、9的层次为4。一棵树中所有结点的层次的最大值称为树的深度,如上 图其深度为4;

路径:

对于一棵子树中的任意两个不同的结点,如果从一个结点出发,按层次自上而下沿着一个个树枝能到达另一结点,称它们之间存在着一条路径。可用路径所经过的结点序列表示路径,路径的长度等于路径上的结点个数减1.

(植树原理)比如根结点1到叶结点9,一共有1、4、7、9四个结点,4-1=3。3就是1号结点到9号结点的路径长度,路径就是(1、4、7、9)

森林(forest):

指m(m>=0)棵互不相交的树的集合

二叉树:

技术分享图片

二叉树基本概念:

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树是递归定义的,逻辑上二叉树有五种基本形态:

(1)空二叉树——如图(a);

(2)只有一个根结点的二叉树——如图(b);

(3)只有左子树——如图(c);

(4)只有右子树——如图(d);

(5)完全二叉树——如图(e)。

 

类型:

(1)完全二叉树——若设二叉树的高度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。

(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。一棵深度为k,且有2^k-1个节点称之为满二叉树;

(3)平衡二叉树——平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。请百度.....

技术分享图片

技术分享图片

 

二叉树遍历:

技术分享图片

先序遍历 DLR

先序遍历是先访问根结点,再左子树,再右子树,

比如上图,先序遍历的输出如下:1 ,2,4,5,3,6,8,7

中序遍历LDR

中序是先访问左子树, 再根结点,再右子树。

比如上图,先序遍历的输出如下4,2,5,1,8,6,3,7

后序遍历LRD 

后序是先访问左子树, 再右子树,再根结点。

比如上图,先序遍历的输出如下:4,5,2,8,6,7,3,1

说说二叉树的存储结构,跟很多其它模型一样,

也有顺序和链式两种方式。前者虽然使用简单,

但是存在浪费空间的问题,举个例子,上图的二叉树,

用顺序的方式存储(0表示空,没有子树)是:

1 2 3 4 5 6 7 0 0 0 0 8 0 0 0

以上是关于笔记:树的认识的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法学习笔记 树

数据结构与算法学习笔记 树

Unity 学习笔记:认识Unity

4412嵌入式开发板学习笔记认识uboot

算法笔记--树的直径模板

QT学习笔记——ui的认识