05 2018 档案

红黑树(二):删除
摘要:红黑树的删除操作,较之插入更为复杂,因为红黑树也是二叉搜索树,所以红黑树的删除流程跟二叉搜索树一样,先找到要删除的目标节点T,如果T没有子节点,则将T直接删除,如果T有一个子节点,则将此子节点替换到T的位置,然后删除T,否则如果有两个子节点,则在T的子树中寻找后继节点X,然后将X的值覆盖到T结点,然 阅读全文

posted @ 2018-05-12 21:49 凄夜 阅读(843) 评论(0) 推荐(0)

红黑树(一):插入
摘要:红黑树跟AVL树一样,也是平衡二叉树,其查找、增加、删除效率为O(lgN),红黑树使用非常广泛,C++STL里面的map,set都是用红黑树实现的。 以下就是一棵红黑树: 《算法导论》上定义红黑树需满足以下五个性质: 1.每个结点是黑色或是红色。 2.根结点是黑色。 3.所有叶子节点是黑色(也就是上 阅读全文

posted @ 2018-05-12 00:45 凄夜 阅读(562) 评论(0) 推荐(0)

AVL树
摘要:二叉查找树在极端情况下,会退化为链表,比如一个排好序的数组,构建成二叉树后,就是一颗全部左倾或右倾的树,这时候查找的时间为O(N),AVL树是带有平衡条件的二叉查找树,它的每个节点左子树和右子树的高度最多相差1,它会保证树的高度为O(logN),所以在查找时,能保证最坏情况下时间为O(logN),A 阅读全文

posted @ 2018-05-04 22:39 凄夜 阅读(255) 评论(0) 推荐(0)

二叉查找树
摘要:二叉树的定义是一棵树的每个节点最多只有两个儿子,使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中的关键字比X中的小,而它的右子树则比X中的关键字大。 二叉树节点可以定义成如下形式: 二叉树非常简单,下面再介绍几个基本的操作。 一、插入 插入一个关键字Key从根节点开始,如果Key比 阅读全文

posted @ 2018-05-03 22:17 凄夜 阅读(166) 评论(0) 推荐(0)

导航