二叉树:树中每个节点至多有两个子节点
二叉搜索树:对于树中任何节点,如果其左子节点不为空,那么该节点的value值永远 >=
其左子节点;如果其右子节点不为空,那么该节点的value值永远 <=
其右子节点(左子节点<value<右子节点)
满二叉树:树中除了叶子节点,每个节点都有两个子节点
完全二叉树:在满足满二叉树的性质后,最后一层的叶子节点均需在最左边
完美二叉树:满足完全二叉树性质,树的叶子节点均在最后一层(也就是形成了一个完美的三角形)
满二叉树、完全二叉树、完美二叉树的定义是越来越严格的
性质一:在二叉树的i层上至多有2 i-1个节点(i>=1)至少有1个
性质二:深度为k的二叉树至多有2k-1个节点,至少为k个
性质三:对任何一棵二叉树T,如果终端结点树为n,度为2的结点为n2,度为0的结点为n0 则n0=n2+n1
性质四:具有n个节点的完全二叉树的深度为[log2n]+1向下取整
性质五:如果有一颗有n个节点的完全二叉树的节点按层次序编号,对任一层的节点i(1<=i<=n)有
1.如果i=1,则节点是二叉树的根,无双亲,如果i>1,则其双亲节点为[i/2],向下取整
2.如果2i>n那么节点i没有左孩子,否则其左孩子为2i
3.如果2i+1>n那么节点没有右孩子,否则右孩子为2i+1
大家可以通过画图验证以上性质