数据结构——8.树的概念和二叉树

第一部分:树的基本概念与术语

这部分是基础,笔试中经常以选择题、填空题或简答题的形式考察。

1. 什么是树?

  • 定义:树 (Tree) 是由 n (n≥1n \ge 1n1) 个有限节点组成的集合T。它有一个特殊的节点,称为根 (Root)。其余节点可分为 m (m≥0m \ge 0m0) 个互不相交的有限集合 T1,T2,...,TmT_1, T_2, ..., T_mT1,T2,...,Tm,其中每一个集合本身又是一棵树,并被称为根的子树 (Subtree)
  • 核心特征
    • 树是一种非线性数据结构,能很好地描述具有层次或分支关系的对象(例如,家族的族谱、公司的组织架构、操作系统的文件系统)。
    • 树中至少有一个节点(根节点)。
    • 除了根节点外,每个节点有且仅有一个父节点。
    • 一棵n个节点的树有 n-1 条边。
  • 有序树与无序树:如果我们将树中每个节点的子树看作是有顺序的,不能随意交换位置,则称该树为有序树。反之,则为无序树。在计算机中,我们通常处理的都是有序树

2. 树的相关术语

这些术语是后续学习的基础,必须牢记。

  • 节点关系

    • 父节点 (Parent):一个节点的上级节点。
    • 子节点 (Child):一个节点的下级节点。
    • 兄弟节点 (Sibling):拥有同一个父节点的节点。
    • 祖先 (Ancestor):从根到某节点路径上的所有节点都是该节点的祖先。
    • 后裔 (Descendant):某节点的所有子树中的节点都是该节点的后裔。
  • 节点属性

    • 节点的度 (Degree):一个节点拥有的子树个数(即其子节点的数量)。
    • 叶节点 (Leaf)终端节点:度为 0 的节点。
    • 分支节点非终端节点:度不为 0 的节点。
  • 树的属性

    • 树的度:树中所有节点度的最大值。
    • 节点的层次 (Level):从根开始定义,根为第 0 层,根的子节点为第 1 层,以此类推。
    • 节点的深度 (Depth):从根到该节点的路径长度(经过的边数)。根节点的深度为 0。
    • 节点的高度 (Height):从该节点到其最远叶节点的最长路径长度。叶节点的高度为 0。
    • 树的高度/深度:通常指树中所有节点高度/深度的最大值,即根节点的高度或最深叶节点的深度。

3. 森林 (Forest)

  • 定义:森林是 m (m≥0m \ge 0m0) 棵互不相交的树的集合。
  • 与树的关系:去掉一棵树的根,就得到了一个森林;反之,给一个森林添加一个统一的根节点,就形成了一棵树。

第二部分:二叉树 (Binary Tree)

二叉树是本章的重中之重,是机试考试的绝对主角。

1. 什么是二叉树?

  • 定义:二叉树是一个有限的节点集合,这个集合或者为空集,或者由一个根节点及两棵互不相交的、分别称为根节点的左子树 (Left Subtree)右子树 (Right Subtree) 的二叉树组成。

  • 树与二叉树的核心区别

    1. 度的限制:二叉树的每个节点最多有 2 个子节点,而普通树没有此限制。
    2. 有序性:二叉树是有序的,其子树严格区分为“左子树”和“右子树”,次序不能颠倒。即使某个节点只有一棵子树,也必须指明是左子树还是右子树。
    3. 空集:二叉树可以是空的,而根据定义,树至少有一个根节点。

2. 二叉树的重要性质 (笔试高频考点)

这些引理是进行复杂度分析和解题的利器。

  • 引理 4.1: 在二叉树的第 iii 层上(i≥0i \ge 0i0),至多有 2i2^i2i 个节点。
  • 引理 4.2: 高度为 kkk 的二叉树(k≥0k \ge 0k0),至多有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱看烟花的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值