数据结构 - 树 - 树的基本介绍
树的定义
树是由 个结点构成的有限集合,在任意一棵非空树中:
-
有且仅有一个称为根 root 的结点。
-
当 时,其余结点可分为若干个互不相交的集合,且这些集合中的每一个集合本身又是一棵树,称为根的子树。
(1) 数据对象
数据对象 D 是具有相同特性的数据元素的集合。
(2) 数据关系
若 D 为空集,则称为空树。否则:
-
D 中存在唯一称为根的数据元素;
-
当 时,其余结点可分为 个互不相交的有限集 ,,,,其中每一棵子集本身又是一棵树,称为根的子树。
例子
对于一棵树 。
是根,其余结点划分为三个互不相交的集合:
每一个集合又都是一棵树,它们是根 的子树。对于 , 是根,其余结点又可以划分为两个互不相交的集合。
和 是 的子树。
其逻辑结构可以表示为下图:
从逻辑结构上看
-
树中只有根结点没有前驱;
-
除根外,其余结点有且仅有一个前驱;
-
树中的结点,可以有零个或多个后继;
-
除根之外的其他结点,都存在唯一一条从根到该结点的路径。
-
树是一种分支结构。
树的基本术语
结点:数据元素 若干指向子树的分支。
结点的度:分支的个数。
树的度:树中所有结点的度的最大值。
叶子结点:度为零的结点。
分支结点:度大于零的结点。
一般的树可能有隐性的序关系。
-
有序树:子树之间有明确的次序关系。
-
无序树:子树之间没有顺序要求。
(从根到结点的)路径:由从根到该结点所经过的分支和结点构成。
对结点进行一些分类上的说明。
孩子结点、子孙结点
兄弟节点、堂兄弟
双亲结点、祖先节点
结点的层次:假设根节点的层次为 ,在第 层结点的子树的根结点,在第 层。
树的深度:树中叶子结点所在的最大层次。
森林: 棵互不相交的树的集合。
则任何一棵非空树都是一个二元组
其中, 称为根结点, 称为子树森林。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现