数据结构_树_二叉树

github地址:
https://github.com/arkulo56/thought/blob/master/software/dataStruct/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E6%A0%91_%E4%BA%8C%E5%8F%89%E6%A0%91.md

二叉树

概念

  1. 树的最大度为2
  2. 孩子分为左右
  3. 每层的节点数量:2^层号
  4. 所欲的节点数量:2层数-1,不是2(层数-1)
  5. 斜树请直接使用线性表
  6. 一般二叉树是没有规律的,所以无法使用
  7. 满二叉树也是一种特殊的完全二叉树

《数据结构_树_二叉树》 https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/binary_tree.png

满二叉树

  1. 所有叶子节点都在一层
  2. 所有分支节点密度为2
  3. 满二叉树层数:2^3-1=7 => log2(7+1) => log2(n+1)

完全二叉树

  1. 第i个元素的位置与满二叉树位置相同
  2. 节点顺序为先左后右
  3. 所有叶子节点都分布在倒数后2层
  4. log2(n)<完全二叉树层数<log2(n)+1

二叉树遍历

这里有两个关键词:访问+次序

访问:对每个数据节点需要做的处理,例如:打印、加法运算
次序:不同的应用场景该有不同的访问顺序。例如:给公司所有人员发年终奖,按照岗位重要性逐个发放

总结

所有的数据都是存在磁盘上的,然后通过程序将其加载进内存,然后在内存中形成一棵树。好的,开始读写吧~

    原文作者:arkulo
    原文地址: https://www.jianshu.com/p/15ec5d6b33ee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞