<学习笔记 数据结构 树><1.1>基础认知

树的基础知识

n(n>=1)有限节点组成

特点

  • 每个节点有零个或多个子节点
  • 没有父节点的节点为根节点
  • 非根节点有且只有一个父节点
  • 除根节点外,每个子节点可以分为多个不相交的子树

名词定义

    • 由根节点和若干子树构成

    • 递归定义

      设 T1 ,T2,…,TK 是树,它们的根节点分别为 n1,n2,…,nk 用一个新节点 n 代替 n1,n2,…,nk 的父亲 . 得到一棵新树

      节点 n 就是新树的根 , n1,n2,…,nk , 一组兄弟节点,它们都是节点 n 的子节点

      我们还称 T1 ,T2,…,TK 为节点 n 的子树

  • 空树

    空集

  • 节点的度

    一个节点含有的子节点个数

  • 叶节点或终端节点

    度 == 0

  • 非终端或分支节点

    度 != 0

  • 兄弟节点

    还有相同父节点的节点

  • 树的度

    树中最大的节点的度为树的度

  • 节点的层次

    • 从根开始–根为第一层
      - 根的子节点为第二层
      - …
  • 树的高度或深度

    树中节点最大层次 == 所有节点的最大层次
    定义根节点层 ==1 ,子节点层 +1

  • 堂兄弟节点

    父节点在同一层

  • 节点的祖先

    从根开始到该节点所经过的分支的所有节点

  • 子孙

    以某节点为根的子树的任意节点都是该节点的子孙

  • 森林

    m(m>=0) 棵互不相交的树的集合

种类

无序树 - 自由树 无序树

  • 树中任意节点的子节点没有顺序关系

有序树

  • 节点的字节点有顺序关系

二叉树

  • 每个节点最多有两个子树

满二叉树 - 完全二叉树

  • 深度为 k ,且有 2k - 1 个节点
  • 叶节点除外的所有节点均含有两个子树的树
    • 除了最后一层其他都含有两个子节点

完全二叉树

  • 除最后一层外,所有层都是满节点

  • 最后一层缺右边连续节点

    遍历判断完全二叉树

    1. 树 == NULL ERROR
    2. 树 != NULL 遍历
      1. 节点 != NULL pop该节点 将左右孩子列入队列
      2. 左孩子 == NULL 右孩子 != NULL 一定不是
      3. 遇到节点 之后队列中的所有节点都为叶子节点
        1. 左孩子 != NULL 右孩子 == NULL
        2. 左右节点 == NULL

哈夫曼树 - 最优二叉树

  • 带权路径最短的二叉树

表示方法

图像表示法

完全二叉树
树

符号表示法

(A(B(D(#,#),G(#,#)),C(E(#),F)))

遍历表示法

  • 先序遍历 - 根-左-右

    • ABD##G##CE#F
  • 中序遍历 - 左-根-右 - 仅二叉树可以

    • #D#B#G#A#ECF
  • 后序遍历 - 左-右-根

    • ##D##GB#EFCA
  • 层次遍历

    • ABCDGEF#####
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青蓝灰紫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值