树的相关概念

一、什么是树
  • 树在计算机术语中是一种数据的存放结构,是由n(n>=1)个有限节点组成的具有层次关系的集合

  • 这种结构的构成跟自然界中的树很相似

1.1、树的特点
  • 每个节点都有零个或多个节点

  • 每一个非根节点有且只能有一个根节点

  • 每个节点及其后代节点都可以看成一颗树

    • subTree
  • 半线性

    • 节点的父节点必然存在且唯一 但是后代不唯一也不必然存在
二、关于树的概念
2.1、度
  • 节点的度

    • 以该节点为根节点的节点的数量
    • 分支节点
      • 度不为0的节点称为分支节点
    • 叶子
      • 度为0的节点称为叶子节点 或终端节点
      • 树身为一个有限的集合 那么就一定会有最值(某个节点的深度为maxValue 叶子节点)
  • 树的度

    • 取树中度最大节点的度作为树的度
2.2、层次
  • 从根开始计算 根的层次为 1(0 还是 1 可能有争议)根的孩子为第二层 依次增加

  • 深度

    • 对于任意节点n,n的深度为从根到n的唯一路径长,根的深度为0;
  • 高度

    • 对于任意节点n,n的高度为从n到一片树叶最长路径长,所有树叶的高度为0
    • 树的高度为叶子节点中深度最大者的高度(深度和高度在此刻相等)
    • height(v)=height(subtree(v)) 任何一棵子树的高度等价于其根节点的高度
      • 根节点的高度为 0 如果一棵树没有任何节点那么它的高度为-1
      • 在这里插入图片描述
  • 路径 v to r

    • 任意节点v从到根节点r存在唯一一条通路
    • path(v)上的点除了v点本身都是 它的祖先(ancestor) 而v是他们的[真]后代
    • 在这里插入图片描述
  • 高度和深度的关系

    • 存在树 T
    • 对于T中任意一个节点v 深度(v)+高度(v)<=高度(T)
2.3、森林
  • m(m>=0)棵互不相交的树的集合
  • 一棵树的所有根节点的集合就是一个森林(每个子数都可以看成一颗树了)
2.4、根节点
  • 是树中所有非根节点的祖先节点
  • 根节点没有父节点
2.5、有序树和无序树
  • 无序树

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

    • 树节点之间存在顺序关系
      • img
    • 若将树中每个结点的各子树看成是从左到右有次序的(即不能互换),则称该树为有序树(Ordered Tree);
三、树和图的关系
  • 树是边最多的无环图同时由于它的特性它还是连通的
    • 无环连通图
    • 极小连通图 (连通图中消耗的边最少的)
    • 极大无环图 (再无环的情况下 消耗最多的边)
四、树的存储结构
  • 邻接表

    • 空间开销较大 对于根节点向下搜索复杂度开销大
    • 对于子节点向上搜索 开销小
  • 邻接举证

  • 父亲+长子

    • 每个节点均设置 父亲和长子两个引用
    • 横向间的移动从兄长开始(第一个节点)
      -在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值