二叉树基础

Posted 20188703zyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树基础相关的知识,希望对你有一定的参考价值。

树(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)一层一层的遍历











以上是关于二叉树基础的主要内容,如果未能解决你的问题,请参考以下文章

二叉树基础详解

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)

二叉树基础

数据结构二叉树经典基础习题

Python数据结构系列☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️

基础扫盲:二叉树系列 第三讲(二叉树的剪枝)