树型结构的介绍

1、树形结构:

元素之间存在一对多关系的数据结构,适合存储具有层次关系的数据模型,如文件树、组织关系、族谱等。

2、树的相关术语

  • 根结点:树的最顶层结点,一棵树只有一个。
  • 双亲结点、父节点:结点的上一层结点,一个结点只有一个双亲结点。
  • 兄弟节点:具有同一个双亲结点的结点。
  • 子节点:结点的下一层结点,可能会有多个。
  • 叶子结点:没有子节点的结点。
  • 树的高度:树的层数。
  • 树的密度:树的总结点的数量。
  • 树的度:根结点的子结点数(仅计算根结点的子结点)。

常见的树的种类

  • 普通树:每个结点只有一个双亲结点,但子结点数量任意;通常会转化成二叉树进行分析
  • 多路平衡查找树:
    多路:子结点的数量存在上限(n叉树上限就是n)
    平衡:所有子树的高度相差不超过1
    查找:结点是按照某种规则排过序的
  • 二叉树:每个结点最多只有两个子结点的树

常见的二叉树的种类

  • 满二叉树:最后一层的所有结点都没有子结点,除此之外所有结点都有两个子结点
    满二叉树图示

  • 完全二叉树:除了最后一层,所有层的结点数是2^(n-1),最后一层按照从左到右排列。可简单理解为满二叉树的基础上,最后一层没有填满。
    完全二叉树图示

  • 有序二叉树:所有结点的左子结点都比自己小,右子结点都比自己大,当有序二叉树按中序遍历时数据是有序的
    例如:用数据 7 5 6 4 9 1 8 2 3构建有序二叉树,先令7为根结点,后续数据比当前结点小则往左边存放,比当前结点大则往右边存放。
    有序二叉树图示

  • 平衡二叉树:每个根结点的左右子树的高度相差不超过1
    例如:图中结点数值为以当前结点为根结点的子树的高度
    平衡二叉树图示

  • 线索二叉树:给普通的二叉树增加线索,使其可以使用循环的方式遍历,提高遍历速度

  • 哈夫曼树:结点有权重的树,子结点可以通过权重推算父节点。该树的一个重要应用就是哈夫曼编码,可以对数据进行压缩
    例如:用数据1 2 3 4 5构建哈夫曼树,先用最小的两个数构建一个临时结点,再将临时结点存入数组,再找最小的两个数构建临时结点,循环往复。
    图中黑色是原数据,红色是临时结点。
    哈夫曼树图示

  • 堆:
    大根堆:所有结点都比自己的左右子结点大
    小根堆:所有结点都比自己的左右子结点小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值