【数据结构】数据结构中经常使用的树

一、树的定义

首先给出树的相关定义:树(tree)是包含n(n>0)个结点的有穷集,其中:node

  • 1)每一个元素称为结点(node);
  • 2)有一个特定的结点被称为根结点或树根(root);
  • 3)除根结点以外的其他数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每个集合Ti(1<=i<=m)自己也是一棵树,被称做原树的子树。

二、树的相关术语

  • 节点的度:一个节点含有的子树的个数称为该节点的度;
  • 叶节点或终端节点:度为0的节点称为叶节点;
  • 非终端节点或分支节点:度不为0的节点;
  • 双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;
  • 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;
  • 兄弟节点:具备相同父节点的节点互称为兄弟节点;
  • 树的度:一棵树中,最大的节点的度称为树的度;
  • 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
  • 树的高度或深度:树中节点的最大层次;
  • 堂兄弟节点:双亲在同一层的节点互为堂兄弟;
  • 节点的祖先:从根到该节点所经分支上的全部节点;
  • 子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
  • 森林:由m(m>=0)棵互不相交的树的集合称为森林;

三、二叉树

二叉树的定义:算法

  • 二叉树的每一个结点至多只有二棵子树(不存在度大于2的结点),
  • 二叉树的子树有左右之分,次序不能颠倒。
  • 二叉树的第i层至多有2i-1个结点;深度为k的二叉树至多有2k-1个结点;
  • 对任何一棵二叉树T,若是其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。

3.1 要点

遍历:先序遍历,中序遍历,后序遍历。 非递归算法:用栈。 深度遍历算法:链表。数据结构

四、满二叉树

一棵深度为k且有2k-1(2的k次幂减1)个结点的二叉树称为满二叉树。指针

五、彻底二叉树

深度为k的,有n个结点的二叉树,当且仅当其每个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之为彻底二叉树。blog

六、二叉排序树

二叉查找树定义:又称为是二叉排序树(Binary Sort Tree)或二叉搜索树。二叉排序树或者是一棵空树,或者是具备下列性质的二叉树:排序

    1. 若它的左子树不空,则左子树上全部结点的值均小于它的根结点的值;
    1. 若它的右子树不空,则右子树上全部结点的值均大于或等于它的根结点的值;
    1. 它的左、右子树也分别为二叉排序树。

七、平衡二叉树

平衡二叉树(Balanced Binary Tree)又被称为AVL树。它或者是一棵空树,或者是具备下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。(注:平衡二叉树应该是一棵二叉排序树)递归

注意点

平衡二叉树的调整索引

八、B树

B树又称为B-树,是一种平衡的多路查找树。B-树的阶是全部结点的孩子结点树的最大值。一棵m阶B-树,或为空树,或为知足下列特性的m叉树:图片

  • 1)树中每一个结点至多有m棵子树;
  • 2)若根节点不是叶子节点,则至少有两棵子树;
  • 3)除根以外的全部非终端结点至少有[m/2]()向上取整)棵子树;
  • 4)全部的非终端结点中包含下列信息数据:(n,A0,K1,A1,K2,A2,…,Kn,An),其中,n为结点中的关键字树,A为指向子树根结点的指针,K为关键字,且Ai-1所指子树中全部结点的关键字均小于Ki,An所指子树中全部结点的关键字均大于Kn;
  • 5)全部的叶子结点都出如今同一层次上,而且不带信息(能够看做是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。下图为一棵4阶B-树:

输入图片说明

九、B+树

B+树是应文件系统所需而出的一种B-树的变型树。一棵m阶B+树和m阶的B-树的差别在于:get

  • 1)有n棵子树的结点中含有n个关键字,每一个关键字不保存数据,只用来索引,全部数据都保存在叶子节点;
  • 2)全部的叶子结点中包含了所有关键字的信息,及指向含这些关键字记录的指针,且叶子结点自己依关键字的大小自小而大顺序连接;

十、红黑树

一棵红黑树是知足下面性质的二叉搜索树:

  • 1)每一个结点或是红色的,或是黑色的;
  • 2)根结点是黑色的;
  • 3)每一个叶结点(叶结点即指树尾端NIL指针或NULL结点)是黑的;
  • 4)若是一个结点是红色的,则它的两个子结点都是黑色的;
  • 5)对每一个结点,从该结点到其全部后代叶结点的简单路径上,均包含相同数目的黑色结点。

十一、键树

十二、字典树

1三、后缀树

1四、区间树与线段树

1五、败者树与胜者树

连接

数据结构中各类树

相关文章
相关标签/搜索