树的基本概念

树的定义

树(Tree)是一种非线性数据结构,由节点(或称为顶点)和边组成。树具有层次结构,每个节点可以有多个子节点,但每个子节点只能有一个父节点。树的顶部节点称为根节点(Root),根节点没有父节点。树中的节点可以分为内部节点(有子节点的节点)和叶子节点(没有子节点的节点)。

树的数学定义

树可以被定义为一个无环的连通图。具体来说:

  • 无环:树中不存在任何环,即没有从一个节点出发经过若干条边后回到该节点的路径。
  • 连通:树中的任意两个节点之间都存在一条路径。

树的基本术语

  • 节点(Node):树中的每个元素称为一个节点,节点包含数据部分和指向子节点的指针。
  • 根节点(Root):树的顶部节点,没有父节点。
  • 父节点(Parent):一个节点的直接前驱节点。
  • 子节点(Child):一个节点的直接后继节点。
  • 叶子节点(Leaf):没有子节点的节点。
  • 兄弟节点(Sibling):具有相同父节点的节点。
  • 路径(Path):从一个节点到另一个节点的边的序列。
  • 路径长度:从一个节点到另一个节点的边的数量
  • 层次(Level):从根节点到某个节点的路径长度。
  • 高度(Height)或深度:树的高度是从根节点到最远叶子节点的最长路径的长度。
  • 子树(Subtree):以某个节点为根的树称为该节点的子树。
  • 度(Degree):一个节点的子节点数量。树的度是指树中节点的最大子树数量。

树的性质

  • 唯一根节点:树有且仅有一个根节点。
  • 无环:树中不存在任何环。
  • 连通:树中的任意两个节点之间都存在一条路径。
  • 层次结构:树具有明显的层次结构,每个节点都可以通过路径到达根节点。
  • 子节点唯一性:每个子节点只能有一个父节点。

树的常见类型

  • 二叉树(Binary Tree):每个节点最多有两个子节点的树。
  • 满二叉树(Full Binary Tree):每个节点都有两个子节点或没有子节点的二叉树。
  • 完全二叉树(Complete Binary Tree):如果二叉树的所有叶子节点都在最后一层或倒数第二层,并且最后一层的叶子节点从左到右连续排列。
  • 平衡二叉树(Balanced Binary Tree):左右子树的高度差不超过1的二叉树。
  • 二叉搜索树(Binary Search Tree, BST):一种特殊的二叉树,其中每个节点的值大于其左子树中所有节点的值,小于其右子树中所有节点的值。
  • AVL树:一种自平衡的二叉搜索树,其中每个节点的左右子树的高度差不超过1。
  • 红黑树:一种自平衡的二叉搜索树,通过在节点上添加颜色属性(红色或黑色)来保证树的平衡。
  • B树:一种多叉树,每个节点可以有多个子节点,通常用于数据库和文件系统中。
  • B+树:B树的一种变体,所有叶子节点都包含指向相邻叶子节点的指针,便于范围查询。
  • 堆(Heap):一种特殊的完全二叉树,通常用于实现优先队列。堆分为最大堆和最小堆。
posted @   抒写  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示