总结了数据结构中树的一些常见的类型。
一、线索二叉树
对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。
二、二叉查找树(BST)
二叉查找树又叫二叉排序树,二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
平均情况下查找时间复杂度为O(logn);最坏情况则是退化成一个链表,查找时间复杂度为O(n);
【传送门-数据结构——二叉搜索树(BinarySearchTree)的实现】
三、平衡二叉树(AVL)
AVL树可以看做是二叉查找树的升级版,它拥有二叉查找树的特性的同时,还规定了在AVL树中任何节点的两个子树的高度差最大不超过1,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。
【