杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理
  71 随笔 :: 0 文章 :: 0 评论 :: 7712 阅读

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

基本的二叉树结构:

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

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

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

  • 节点:

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

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

4.二叉树的性质:

  • 二叉树中,第i层最多有 2i1 个 结点
  • 二叉树的深度为K,那么整颗树最多会有2K1 个结点
  • 二叉树的终端结点数为n0个,而度为2的结点数为n2个,则总结点数n0 = n2 + 1 .

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

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

满二叉树的性质:

  • 满二叉树的第i层的结点数为:2i1
  • 满二叉树的深度为K的话,总的结点数为2K1 个, 叶子结点数:2k1
  • 具有n个结点的二叉树的深度为log2(n+1)

完全二叉树: 除去最后一层整颗树为满二叉树,且最后一层节点满足从左到右
完全二叉树的性质:
当完全二叉树的结点数为n的时候,二叉树的深度为:[log2n+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   快乐过了阈值  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示