[数据结构]树

目录

1.树和二叉树

1.1树的定义

1.2二叉树的定义


1.树和二叉树

1.1树的定义

树是n(n>=0)个节点的有限集。当n=0时,称为空树。在任意一个空树中,有如下特点:

  • 有且仅有一个特定的成为根的节点。
  • 当n>1时,其余节点分为m(m>0)个互不相交的有限集,每一个集合本身又是一个树,并称为根的子树。

如下图所示,是一个标准的树结构:

在上图中,节点1是根节点;节点5,6,7,8是树的末端,没有孩子,被称为叶子节点。图中的虚线部分,是根节点1的其中一个子树。节点4的上一级节点2,是节点4的父节点;从节点4衍生出来的节点7,8,9,是节点4 的孩子节点;和节点4同级,由同一个父节点衍生出来的节点5,是节点4的兄弟节点。树的最大层级数被称为树的高度或深度,上图树的高度为4。

1.2二叉树的定义

1、二叉树是树的一种特殊形式。二叉树的每个节点最多有两个孩子节点。其结构如下图所示:

二叉树节点的两个孩子节点,一个被称为左孩子 ,一 个被称为右孩子。二叉树还有两种特殊形式,一个叫作满二叉树,另一个叫作完全二叉树

2、一个二叉树的所有非叶子节点都存在左右孩子,并且所有叶子节点都在同一层级上,那么这个树就是满二叉树。简单点说,满二叉树的每一个分支都是满的。

3、对一个有n个节点的二叉树,按层级顺序编号,则所有节点的编号为从1到n。如果这个树所有节点和 同样深度的满二叉树的编号为从1到n的节点位置相同,则这个二叉树为完全二叉树。

4、二叉树可以用链式存储结构和数组来表达。

(1)链式存储结构

 以二叉树的每一个节点包含3部 分。 · 存储数据的data变量 · 指向左孩子的left指针 · 指向右孩子的right指针。

(2)数组

使用数组存储时,会按照层级顺序把二叉树的节 点放到数组中对应的位置上。如果某一个节点的左孩 子或右孩子空缺,则数组的相应位置也空出来。

猜你喜欢

转载自blog.csdn.net/weixin_45922730/article/details/128935919