二叉树总结
树的定义
树状图是一种数据结构,它是由 n ( n ≥ 1 ) n(n\ge1) n(n≥1) 个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
- 每个结点有零个或多个子结点;
- 没有父结点的结点称为根结点;
- 每一个非根结点有且只有一个父结点;
- 除了根结点外,每个子结点可以分为多个不相交的子树。
引自百度百科。
二叉树
在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树” ( l e f t s u b t r e e ) (left \;subtree) (leftsubtree)和“右子树” ( r i g h t s u b t r e e ) (right \;subtree) (rightsubtree)。二叉树常被用于实现二叉查找树和二叉堆。
一棵深度为k,且有 2 k − 1 2^k-1 2k−1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。具有 n n n 个结点的完全二叉树的深度为 f l o o r ( l o g 2 n ) + 1 floor(log_2 n)+1 floor(log2n)+1。深度为 k k k 的完全二叉树,至少有 2 k − 1 {2^{k-1}} 2k−1 个叶子结点,至多有 2 k − 1 {2^k-1} 2k−1 个结点。
引自百度百科。
简单的二叉树定义
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
二叉搜索树
二叉查找树 ( B i n a r y S e a r c h T r e e ) (Binary \;Search\; Tree) (BinarySearchTree), ( ( (又:二叉搜索树,二叉排序树 ) ) )它或者是一棵空树,或者是具有下列性质的二叉树:
- 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左、右子树也分别为二叉排序树。
引自