杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理

见过最屌的二叉树遍历讲解:[]:https://www.jb51.net/article/237117.htm

基本的二叉树结构:

1.树是线性结构吗?
不是,树是非线性的层次结构。

2.为什么树被称作树?
因为树的这种非线性层次结构用图形表现,看起来就像一个倒置的树,根节点在上,叶子节点在下。

3.树的基本概念(术语-专业用词):

  • 节点:

    • 根节点 | 父亲节点 | 子结点 | 叶子结点 |
      在计算节点个数的时候要注意结点数
  • 子树:
    子树 概念无法描述就用图形记忆住吧

  • 结点的度:
    什么是结点的度 :一个结点有多少颗子树

4.二叉树的性质:

  • 二叉树中,第i层最多有 \(2^{i-1}\) 个 结点
  • 二叉树的深度为K,那么整颗树最多会有\(2^K-1\) 个结点
  • 二叉树的终端结点数为\(n_0\)个,而度为2的结点数为\(n_2\)个,则总结点数\(n_0\) = \(n_2\) + 1 .

随后引申出满二叉树 和 完全二叉树:

满二叉树:除了叶子结点之外,所有的结点的度都是2的二叉树

满二叉树的性质:

  • 满二叉树的第i层的结点数为:$2^{i-1} $个
  • 满二叉树的深度为K的话,总的结点数为\(2^K - 1\) 个, 叶子结点数:\(2^{k-1}\)
  • 具有n个结点的二叉树的深度为\(log_2(n+1)\)

完全二叉树: 除去最后一层整颗树为满二叉树,且最后一层节点满足从左到右
完全二叉树的性质:
当完全二叉树的结点数为n的时候,二叉树的深度为:[\(log_2n +1\)]

特殊性质:
完全二叉树按照层次从左到右依次编号。

  • 当i>1的时候,父亲结点为[i/2] -- []表示向下取整
  • 如果2i > n 的话, 则该结点没有左孩子 ,否则 左孩子为2i;
  • 如果2i+1 > n 的话, 则该结点没有有孩子, 否则 右孩子为 2i+1;

斜二叉树: 度为1,节点都为左孩子或右孩子

平衡二叉树:

二叉搜索树:也叫二叉排序树/二叉查找树(BST),要么是空树,要么是满足以下性质的二叉树:若左子树不为空
则左子树上的所有的结点的值都比根节点的小,若右子树不为空,则右子树的所有结点的值都比
根结点的值大,且左右子树也都是二叉搜索树。

红黑树:

二叉树编程由浅到深:

1.二叉树的数据结构代码实现

2.二叉树的建树
2.1已知二叉树前序遍历次序构建二叉树
2.2已知二叉树中序遍历次序构建二叉树
2.3已知二叉树后序遍历次序构建二叉树

3.已知二叉树,进行递归的前序遍历
4.已知二叉树,进行递归的中序遍历
5.已知二叉树,进行递归的后序遍历
6.已知二叉树,进行层序遍历

7.二叉搜索树的建树
7.1已知二叉搜索树前、中、后序次序构建二叉搜索树

6.二叉搜索树插入、删除节点

8.二叉树转换成链表
9.有序链表转换成二叉搜索树

posted on 2022-08-26 14:54  快乐过了阈值  阅读(80)  评论(0)    收藏  举报