算法笔记(2)
树
树(Tree)是一种非线性的数据结构,它由一系列节点(Nodes)组成,每个节点可以包含一个值或者一个操作。树的节点之间存在父子关系,每个节点都有一个父节点和若干个子节点。根节点是整个树的起点,它没有父节点,其他节点都是由根节点衍生出来的。
树有多种类型,以下是其中几种常见的类型:
二叉树(Binary Tree):每个节点最多有两个子节点,通常称为左子节点和右子节点。二叉树是树的一种特殊形式,它具有一些特殊的性质,例如每个节点的子树数量相等,左右子树的深度差不超过1等。二叉树通常用于实现搜索和排序算法,例如二叉搜索树、堆等。
完全二叉树(Complete Binary Tree):完全二叉树是一种特殊的二叉树,它满足所有层都是满的,除了最后一层外。完全二叉树通常用于优化二叉搜索树的性能,因为它可以更快地找到目标节点。
平衡二叉树(Balanced Binary Tree):平衡二叉树是一种自平衡的二叉树,它满足任意节点的左右子树的高度差不超过1。平衡二叉树通常用于实现高效的搜索和排序算法,例如AVL树、红黑树等。
二叉搜索树(Binary Search Tree):二叉搜索树是一种特殊的二叉树,它满足任意节点的值大于其左子树中的所有节点的值,小于其右子树中的所有节点的值。二叉搜索树通常用于实现高效的搜索和排序算法。
B树(B-Tree):B树是一种自平衡的树结构,它满足任意节点的子树数量在m到n之间,其中m和n是预先设定的常数。B树通常用于实现磁盘文件系统、数据库索引等。
- 根据先序遍历和中序遍历或先后遍历来构建唯一的二叉树
先序遍历和中序遍历的运算结构图
- 根据先序和中序来构建树,后序和中序,层序和中序
- 找两个节点的最近公共祖先LCA
总结
树是一种非线性的数据结构,它由一系列节点组成,可以用来表示实体之间的关系和层次。树的基本术语包括根节点、叶子节点、父节点、子节点、兄弟节点等。树的度是指每个节点的子树数量,而树的深度是指从根节点到最远叶子节点的路径长度。树的节点之间存在父子关系,每个节点都有一个父节点和若干个子节点。根节点是整个树的起点,它没有父节点,其他节点都是由根节点衍生出来的。,树是一种非常有用的数据结构,它可以用来表示实体之间的关系和层次,也可以用于实现各种算法和数据管理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人