二叉树总结
一.思维导图
二.重要概念
1.满二叉树与完全二叉树的区别
满二叉树每层的节点数都达到最大值,即一个满二叉树层数为k,则结点总数是2^k-1,完全二叉树是除了最高层外,其他各层结点数都达到最大值,且最高层结点都集中在左边。
2.二叉树存储方式
(1)顺序存储:使用数组来存储,一般只适合用来表示完全二叉树。
(2)链式存储:用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。
3.二叉排序树查找
if(T为空) return NULL;
while(T不空)
{
if(key==T根) return T;
if(key<T根) search(T->lchild,key);
else if(key>T根) search(T->rchild,key);
}
4.平衡二叉树(AVL树)特点
在符合二叉树的条件下,任何节点的两个子树的高度差不超过1.
5.B+树与B-树的区别
(1)非叶子节点只存储key信息
(2)所有叶子节点之间有一个链指针
(3)B+的非叶子节点只进行数据的索引
(4)B+树的应用场景主要是数据库索引结构
三.疑难问题
平衡二叉树的构建,对于四种调整方法不太理解。
解决方法:熟知这四种调整方法
1.LL单旋
2.RR单旋
3.RL双旋
4.LR双旋