二叉树
由一个由有限节点所组成的集合,此集合可以为空集合,或由一个树根及左右两个子树所组成。简单地说,二叉树最多只能有两个子节点,就是度小于或等于2。
形态:
特殊二叉树:
1.满二叉树
如果二叉树的高度为h(h>=0),树的节点为2^h-1,则称之为满二叉树(即除叶节点外的所有节点都有两个子节点)。
2.完全二叉树
假设二叉树的深度h
节点数小于2^h-1
节点的编号方式如同深度为h的满二叉树
从左到右,从上到下顺序一一对应
(除最后一层(叶节点)外,其它各层的节点树都达到最大个数,且最后一层从左向右的叶节点连续存在,只缺右侧若干节点)
一、性质
1.在二叉树的第n层上至多有2^n-1个节点
2.深度为K的二叉树至多有2^K-1个节点
3.具有n个节点的完全二叉树的深度K为:K = log(2^n)+1
二、遍历
1.前序遍历
递归:
public void preOrder(Node root) {
if(root==null) return;
System.out.print(root.date+" ");
preOrder(root.left);
preOrder(root.right);
}
迭代:
public void preOrder(Node root) {
if(root==null) return;
Stack<Node> stack=new Stack<BST.Node>