【数据结构】树及二叉树概念

目录

前言:

树的相关概念

树的表示

二叉树

概念

两个特殊的二叉树

 二叉树的性质


前言:

前面我们已经学习顺序表、链表、栈以及队列这些结构,他们都有一个特点:都是线性结构。那与之相对的非线性结构是怎样的呢?我们接下来就一起看看非线性结构吧!!!

树是一种非线性的数据结构,它由n(n>0)个有限节点组成的一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂着的数,也就是根在上,叶子在下。

【数据结构】树及二叉树概念_第1张图片

  •  树中有一个特殊的节点:根节点,也就是最顶端的节点。
  • 任何一棵树都可以分为根和子树,子树又可被继续划分为根和子树。
  • 树形结构中,子树之间不能有交集,否则就不是树形结构。

【数据结构】树及二叉树概念_第2张图片

树的相关概念

【数据结构】树及二叉树概念_第3张图片

节点的度:一个节点含有的子树的个数称为该节点的度;如上图根节点A的度为6;

叶节点或者终端节点:度为0的节点称为叶节点;如上图H、I等为叶节点;

非终端节点或分支节点:度不为0;

双亲节点或父节点:若一个节点有子节点,那么这个节点就为子节点的父节点;如A是B的父节点;

孩子节点或子节点:一个节点含有;子树的根节点称为该节点的子节点;如B是A的子节点;

兄弟节点:具有相同父节点的节点互称为兄弟节点;如B、C节点为兄弟节点;

树的度:一颗树中,最大的节点的度称为树的度;如上图树的度为6;

节点的层次:从根算起,根为第1层,根的子节点为第2层,以此类推;

数的高度或深度:树中节点的最大层次;如上图,深度为4;

堂兄弟节点:双亲在同一层的节点互为堂兄弟节点;

节点的祖先:从根到该节点所经分支上的所有节点;

子孙:以某节点为根的子树中任一节点都称为该节点的子孙;

森林:由m(m>0)颗互不相交的树的集合称为森林。

树的表示

树结构相对线性表就比较复杂,要存储表示起来就比较麻烦,既然保存值,又要保存节点之间的关系,实际中树有很多种表示方法如:双亲表示法;孩子表示法、孩子双亲表示法以及孩子兄弟表示法等。这里看一下孩子兄弟表示法。

【数据结构】树及二叉树概念_第4张图片

【数据结构】树及二叉树概念_第5张图片

这里的孩子节点指向没有特殊要求,到是为了便于理解最好指向最左边的孩子。

二叉树

概念

二叉树是n个节点的集合,这个集合要么是空,要么是有根节点和左子树和右子树的二叉树组成。

根据上述定义可知:

        在二叉树中每个节点做多有两个子节点,也就是一颗树最大的度为2。

        在二叉树中根节点的子树有左右之分,在左边的为左子树,右边为右子树,顺序不能颠倒

        二叉树为空就是只有空节点。

 

【数据结构】树及二叉树概念_第6张图片

 对于任意的二叉树都是由以下几种情况复合而成:

【数据结构】树及二叉树概念_第7张图片

 二叉树和树的两个主要区别如下:

1.树中节点的最大度数没有限制,而二叉树节点的最大度数为2,也就是说,二叉树的节点的子树的数量不能超过2.

2.树的节点无左右之分,而二叉树的节点有左右之分。

两个特殊的二叉树

满二叉树:在二叉树中除了最底层的节点之外,所有的节点有两个孩子。也就是每一层的节点数都达到了最大值,即:如果一个满二叉树有k层,那么它的节点数为2^k - 1。

完全二叉树:除最底层外,每一层的节点数都达到最大值,并且最后一层的节点从左到右是连续的。

【数据结构】树及二叉树概念_第8张图片

在上面图片中如果将完全二叉树的最后一层中的节点 H I J K 任意去掉一个,则构不成完全二叉树;

【数据结构】树及二叉树概念_第9张图片

 二叉树的性质

【数据结构】树及二叉树概念_第10张图片

 今天就到这了,以上如果有错误,恳请指正!!!!

你可能感兴趣的:(数据结构)