见过最屌的二叉树遍历讲解:[]:https://www.jb51.net/article/237117.htm
基本的二叉树结构:
1.树是线性结构吗?
不是,树是非线性的层次结构。
2.为什么树被称作树?
因为树的这种非线性层次结构用图形表现,看起来就像一个倒置的树,根节点在上,叶子节点在下。
3.树的基本概念(术语-专业用词):
-
节点:
- 根节点 | 父亲节点 | 子结点 | 叶子结点 |
在计算节点个数的时候要注意结点数
- 根节点 | 父亲节点 | 子结点 | 叶子结点 |
-
子树:
子树 概念无法描述就用图形记忆住吧 -
结点的度:
什么是结点的度 :一个结点有多少颗子树
4.二叉树的性质:
- 二叉树中,第i层最多有 个 结点
- 二叉树的深度为K,那么整颗树最多会有 个结点
- 二叉树的终端结点数为个,而度为2的结点数为个,则总结点数 = + 1 .
随后引申出满二叉树 和 完全二叉树:
满二叉树:除了叶子结点之外,所有的结点的度都是2的二叉树
满二叉树的性质:
- 满二叉树的第i层的结点数为:个
- 满二叉树的深度为K的话,总的结点数为 个, 叶子结点数: 个
- 具有n个结点的二叉树的深度为
完全二叉树: 除去最后一层整颗树为满二叉树,且最后一层节点满足从左到右
完全二叉树的性质:
当完全二叉树的结点数为n的时候,二叉树的深度为:[]
特殊性质:
完全二叉树按照层次从左到右依次编号。
- 当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.有序链表转换成二叉搜索树
本文来自博客园,作者:快乐过了阈值,转载请注明原文链接:https://www.cnblogs.com/black-worrior-2000/p/16627557.html
墨愁前路无知己,天下谁人不识君。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律