二叉树是一课特殊的树。二叉树中的每个结点最多有两个节点,左边的叫左结点,右边的叫右结点;并且每个子结点又都是一课二叉树。
满二叉树:二叉树中的每个结点都有两个子结点。严格的定义:一颗深度为h且有2h-1结点的二叉树。下图就是一颗满二叉树:
完全二叉树:一颗二叉树除右边有一个或者连续几个结点缺失外,其他的节点都是丰满的。严格的定义:二叉树的高度为h,除h层外,其他各层的结点都达到最大个数,第h层从右向左连续缺若干结点。如下图:
最小堆:完全二叉树中所有父节点都比子节点要小。
最大堆:完全二叉树中所有父节点都比子结点要打。
堆的存储方式,直接使用一维数据就可以表示: