定义:
二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树
满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树
完全二叉树:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树
二叉排序树:一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:
左子树上所有结点的关键字均小于根结点的关键字
右子树上所有结点的关键字均大于根结点的关键字
左子树和右子树又各是一棵二叉排序树
(可用于元素的排序、搜索)
平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1(平衡二叉树能有更高的搜索效率)
性质:
性质1:二叉树的第i层上至多有2^(i-1)(其中i≥1)个节点
性质2:深度为h的二叉树中至多含有2^h-1个节点
性质3:若在任意一棵二叉树中,有n(0)个叶子节点,有n(2)个度为2的节点,则必有n(0)=n(2)+1
性质4:具有n个节点的完全二叉树深为log2 (x+1)(其中x表示不大于n的最大整数)
性质5:若对一棵有n个节点的完全二叉树进行顺序编号(1≤i≤n),那么,对于编号为i(i≥1)的节点:
当i>1时,该节点的双亲节点的编号为i/2
若2i≤n,则有编号为2i的左节点,否则没有左节点
当i=1时,该节点为根,它无双亲节点
若2i+1≤n,则有编号为2i+1的右节点,否则没有右节点
储存结构:
1.顺序储存:
二叉树的顺序存储中,一定要把二叉树的结点编号与完全二叉树对应起来
2.链式储存:
(素材来自网络)