目录
一、知识总览
二、二叉树的概念
二叉树是n个结点的有限集合:
①或者为空二叉树,即n = 0;
②或者是由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树
特点:
①每个结点至多只有两颗子树
②左右子树不能颠倒(二叉树是有序树)
二叉树是递归定义的数据结构
三、二叉树的五种状态
四、几个特殊的二叉树
1.满二叉树
一棵高度为h,且含有2^h - 1 个结点的二叉树
特点:
①只有最后一层有叶子结点
②不存在度为1的结点
③按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为[i/2]
2.完全二叉树
当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。
特点
①只有最后两层可能有叶子结点
②最多只有一个度为1的结点
③满二叉树③
④i<=[n/2]为分支结点,i>[n/2]为叶子结点
注:如果某结点只有一个孩子,那么一定是左孩子
3.二叉排序树
一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:
左子树上所有结点的关键字均小于根结点的关键字;
右子树上所有结点的关键字均大于根节点的关键字;
左子树和右子树又各是一棵二叉排序树
注:二叉排序树可用于元素的排序、搜索
4.平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1.
注:平衡二叉树能有更高的搜索效率