二叉树
- 根节点
- 左右子树
- 每个结点都是两颗子树
- 二叉树是有序树,不能调换
从1开始编号
i左节点为2i,右节点2i+1
求父节点为i/2向下取整
完全二叉树
- 在满二叉树去掉后面的编号的结点
- 满二叉树是特殊的完全二叉树
- 编号和满二叉树一致,所以关于父子结点的计算相同
- 叶子结点最多在最后两层
- 最多只有一个度为1的结点,而且必定是左孩子,不是右孩子
- 【5.2_1_二叉树的定义和基本术语】i <= n/2 为分支结点;i > n/2 为叶子结点
- 左子树所有结点小于根节点
- 右子树所有结点大于根节点
- 任意节点的高度之差不超过1
- 让二叉排序树效率高很多
- 越胖越好
推荐阅读
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 数据结构和算法|LeetCode 的正确使用方式
- 先序遍历 中序遍历 后序遍历 层序遍历
- 数据结构|C++技巧(用class类实现链表)
- 数据结构|贪吃蛇代码--c语言版 visual c++6.0打开
- 算法|算法-二分查找
- 数据结构学习指导|数据结构初阶(线性表)
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔