二叉树基础

树(Tree)的基本概念

节点、根节点、父节点、子节点、兄弟节点;节点、根节点、父节点、子节点、兄弟节点;

  • 一棵树可以没有任何节点,称为空树
  • 一棵树可以只有 1 个节点,也就是只有根节点

子树、左子树、右子树;

节点的度(degree):子树的个数;

树的度:所有节点度中的最大值;

叶子节点(leaf):度为 0 的节点;

非叶子节点:度不为 0 的节点;

层数(level):根节点在第 1 层,根节点的子节点在第 2 层,以此类推(有些教程也从第 0 层开始计算)

节点的深度(depth):从根节点到当前节点的唯一路径上的节点总数;

节点的高度(height):从当前节点到最远叶子节点的路径上的节点总数;
树的深度:所有节点深度中的最大值;
树的高度:所有节点高度中的最大值;
数的深度 等于 树的高度;



**其中有有序树 无序树 森林 二叉树 :真二叉树 满二叉树 完全二叉树 **
设二叉树的度为0 度为1 度为2的节点的数量分别为n1 n2 n0;总节点的数量为n

n=n1+n2+n0;
n-1=n1+2n2;
n0=n2+1;
对于二叉树的高度height
假设满二叉树的高度为 h( h ≥ 1 ),那么
  • 第 i 层的节点数量: 2i−1
  • 叶子节点数量: 2h−1
  • 总节点数量 n
  • n = 2h − 1 = 20 + 21 + 22 + ⋯ + 2h−1
  • 树高度与总节点的关系:h = log2(n + 1)
    遍历是数据结构中的常见操作:把所有元素都访问一遍;
线性数据结构的遍历比较简单:

正序遍历
逆序遍历

根据节点访问顺序的不同,二叉树的常见遍历方式有 4 种:

前三种方法调用递归 第四种只能迭代
前序遍历(Preorder Traversal)中左右
中序遍历(Inorder Traversal) 左中右 从大到小或者从小到大的遍历
后序遍历(Postorder Traversal)左右中
层序遍历(Level Order Traversal)一层一层的遍历

posted @ 2020-07-08 23:57  20188703张英杰  阅读(70)  评论(0编辑  收藏  举报