随便

查找概论3-平衡二叉树AVL

2014-08-08  本文已影响183人  eesly_yuan

概念


平衡二叉树构建

struct BFNode
{
    int data,BF;
    BFNode * lhs,*rhs;
};

右、左旋操作如下图所示

void R_rotate(BFNode * T)
{
    BFNode * Tl = T->lhs;
    T->lhs = Tl->rhs;
    Tl->rhs = T;
    T = Tl;
}
void L_rotate(BFNode * T)
{
    BFNode * Tr = T->rhs;
    T->rhs = Tr->lhs;
    Tr->lhs = T;
    T = Tr;
}
右旋.jpg 2.jpg

具体的左平衡右平衡,还需要对BF进行相应的调整,具体过程参考

红黑树


1.在一棵二叉查找树上,执行查找、插入、删除等操作的最佳时间复杂度为O(logn)。
2.但若退化为一棵具有n个结点的线性链,则此些操作最坏情况运行时间为O(n)。

Size Balanced Tree SBT


reference


上一篇 下一篇

猜你喜欢

热点阅读