c++数据结构6——树的基本概念

一、树的定义

树(Tree) 是由 nn(n≥0n≥0)个节点组成的有限集合。

  • 空树:当 n=0n=0 时,树为空。

  • 非空树:包含唯一一个 根节点,其余节点分为 mm 个互不相交的子树(m≥0m≥0)。

示例

       A           ← 根节点
     / | \
    B  C  D       ← 子节点(子树根)
      / \
     E   F         ← 叶子节点

节点A是根节点,B、C、D是子树根,E和F是叶子节点。

二、树的核心组成部分
  1. 根节点(Root)

    • 树的唯一入口,没有前驱节点。

    • 图中示例:节点A。

  2. 叶子节点(Leaf)

    • 树的末端节点,没有后继节点。

    • 图中示例:节点B、E、F、D。

  3. 内部节点(Internal Node)

    • 非根非叶的节点,既有前驱也有后继。

    • 图中示例:节点C。

三、树的属性
  1. 节点的度(Degree)

    • 节点的子节点数量。

    • 示例:节点C的度为2(子节点E、F)。

  2. 树的度

    • 树中所有节点的度的最大值。

    • 示例:若节点C的度最大为2,则树的度为2。

  3. 层数(Level)与深度(Depth)

    • 层数:根节点为第1层,子节点逐层递增。

    • 深度:树的最大层数(树的高度)。

    • 示例:图中树的深度为3。

  4. 兄弟节点(Siblings)

    • 同一父节点的子节点互为兄弟。

    • 示例:节点B、C、D互为兄弟。

四、子树(Subtree)
  • 定义:从任意节点出发,包含该节点及其所有后代节点的树。

  • 性质:子树之间互不相交。

  • 示例

         C           ← 子树根
        / \
       E   F         ← 子树节点

    以节点C为根的子树包含C、E、F。

五、树的性质总结
  1. 唯一根节点:每个非空树有且仅有一个根节点。

  2. 分层结构:节点按层级组织,根节点在第1层。

  3. 无环连通图:树中任意两节点有唯一路径,且无环路。

六、树的遍历方法

层序遍历(广度优先遍历)

  • 规则:按层从上到下,每层从左到右访问节点。

  • 示例

         A           ← 第1层
       / | \
      B  C  D       ← 第2层
        / \
       E   F         ← 第3层

    遍历顺序:A → B → C → D → E → F

七、树的应用场景
  1. 文件系统:目录结构是树形(根目录→子目录→文件)。

  2. 组织结构图:公司层级(CEO→部门→员工)。

  3. 算法设计:二叉搜索树、堆、决策树等。

八、练习

题目:画出以下树的层序遍历结果

       1
     / | \
    2  3 4
    |  / \
    5 6  7

答案:1 → 2 → 3 → 4 → 5 → 6 → 7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值