第二十九章:树的基本概念和性质

 之前学习了数组、字符串、队列、栈等等数据类型和数据结构,它们都是线性存储结构。本章要学习的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。

树结构不论是在竞赛中,还是在实际的工程开发中,都是一类重要的非线性数据结构,树中的节点之间具有明确的层次关系,并且每个节点会“分支”出若干个其他节点。

数据结构中的树和现实生活中的树长得一样,只不过我们习惯于处理问题的时候把树根放到上方来考虑。这种数据结构看起来像是一个倒挂的树,因此得名。后面我们提到的树均指数据结构中的树。

数据结构中的树和实际生活中的树的模型

学习目标:

  1. 掌握树的相关的概念;
  2. 掌握树的性质;
  3. 对于具体问题,能够分析问题并判断问题中的数据能否用树结构表示。

一、树的定义

树的定义

树(Tree)是由 n(n≥0)n(n≥0) 个结点组成的一个非线性、具有层次关系的集合。(特别地,当 n = 0n=0 时,称树为空树,这是一种特殊情况)

树可以分为有根树和无根树两种:

  • 有根树:有一个确定的根节点;
  • 无根树:根不确定,任何结点都可以作为树的根;

无根树

无根树主要在后面将会学习的图论算法中的出现,不是现阶段学习的重点。

一个没有固定根结点的树称为无根树(unrooted tree)。无根树有几种等价的形式化定义:

  • 有 nn 个结点, n-1n−1 条边的连通无向图
  • 无向无环的连通图
  • 任意两个结点之间有且仅有一条简单路径的无向图
  • 任何边均为桥的连通图
  • 没有圈,且在任意不同两点间添加一条边之后所得图含唯一的一个圈的图

无根树的例子也很多,例如 nn 个城市被 n-1n−1 条公里连在一起,如果将城市看作点,将公路看作边,那整个城市公路网络就是一棵树,因为没有明确的根结点,因此它是一棵无根树。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值