数据结构 - 树 - 树的基本介绍

树的定义

是由 n 个结点构成的有限集合,在任意一棵非空树中:

  • 有且仅有一个称为根 root 的结点。

  • n>1 时,其余结点可分为若干个互不相交的集合,且这些集合中的每一个集合本身又是一棵树,称为根的子树

(1) 数据对象

数据对象 D 是具有相同特性的数据元素的集合。

(2) 数据关系

D 为空集,则称为空树。否则:

  • D 中存在唯一称为的数据元素;

  • n>1 时,其余结点可分为 m(m>0) 个互不相交的有限集 T1T2Tm,其中每一棵子集本身又是一棵树,称为根的子树。

例子

对于一棵树 T={A,B,C,D,E,F,G,H,I,J}

A 是根,其余结点划分为三个互不相交的集合:

T1={B,E,F},T2={C,G},T3={D,H,I,J}

每一个集合又都是一棵树,它们是根 A 的子树。对于 T1B 是根,其余结点又可以划分为两个互不相交的集合。

T11={E},T12={F}

T11T12B 的子树。

其逻辑结构可以表示为下图:

从逻辑结构上看

  • 树中只有根结点没有前驱;

  • 除根外,其余结点有且仅有一个前驱;

  • 树中的结点,可以有零个或多个后继;

  • 除根之外的其他结点,都存在唯一一条从根到该结点的路径。

  • 树是一种分支结构。

树的基本术语

结点:数据元素 + 若干指向子树的分支。

结点的度:分支的个数。

树的度:树中所有结点的度的最大值。

叶子结点:度为零的结点。

分支结点:度大于零的结点。

一般的树可能有隐性的序关系。

  • 有序树:子树之间有明确的次序关系。

  • 无序树:子树之间没有顺序要求。

(从根到结点的)路径:由从根到该结点所经过的分支和结点构成。

对结点进行一些分类上的说明。

孩子结点、子孙结点

兄弟节点、堂兄弟

双亲结点、祖先节点

结点的层次:假设根节点的层次为 1,在第 k 层结点的子树的根结点,在第 k+1 层。

树的深度:树中叶子结点所在的最大层次。

森林m(m0) 棵互不相交的树的集合。

则任何一棵非空树都是一个二元组

Tree={root,F}

其中,root 称为根结点,F 称为子树森林。

posted on   Black_x  阅读(293)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示