Data Structure -Tree

来源:互联网 发布:天锐绿盾软件怎么用 编辑:程序博客网 时间:2024/05/22 13:43

树的基本概念

  • 高度:节点n的高度为从节点n到树叶节点的最长路径长度;树叶节点高度为0;一棵树的高度为根节点的高;
  • 深度:节点n的深度为从节点n到根节点的路径长度;根节点深度为0;一棵树的深度为最深的树叶节点的深度,该深度等于树的高;

树的表示法:

二叉树

概念

注意二叉树的左子树和右子树是有顺序的,不能颠倒,比如三个节点的二叉树就有五种不同的形态。
特殊二叉树:

  • 斜二叉树
  • 满二叉树
  • 完全二叉树:按层序编号,其节点的编号与同样深度的满二叉树节点编号一致。其叶子节点只会出现在最下面两层。

性质

  • 二叉树的第i层至多有2i1个节点
  • 深度为k的二叉树至多有2k1个节点
  • 对任意二叉树,叶节点数目为n0,度为2的节点数目为n2,则n0=n2+1
  • 具有n个结点的完全二叉树深度为

存储结构

  • 顺序存储
    用数组存储,适合完全二叉树
  • 链式存储

遍历

根节点相对左右子树打印的顺序。

  • 前序遍历
  • 中序遍历
  • 后序遍历

充分理解其递归和非递归两种方式遍历的过程和代码实现。

二叉查找树(Binary Search Tree)

AVL树

红黑树

红黑树深入剖析及Java实现
红黑树相关原理介绍
B树
平衡树