数据结构_树_二叉树

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
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

二叉树遍历

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

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

总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 树 1. 树的定义 树(Tree):是n(n>=0)个节点的有限集,它或为空树(n=0);或为非空树,对于非...
    Lost_Robot阅读 628评论 0 1
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,523评论 1 31
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 4,378评论 1 5
  • 定义 一个有穷的结点集合,可以为空。若不为空,则它是由根结点和称为其左子树和右子树的两个互不相交的二叉树组成。 二...
    IAM四十二阅读 2,638评论 0 2
  • ¥关闭¥ 【雷霆战机】 〖http://pan.baidu.com/s/1kVstszX〗 《解压源码后直接用AI...
    小菜c阅读 9,678评论 0 19