2014年4月22日

《算法导论》笔记 第13章 13.2 旋转

摘要: 【笔记】旋转:保持二叉查找树性质的查找树局部操作。左旋: void leftRotate(NODE *x) { NODE *y = x->r; x->r = y->l; if (y->l != nil) { y->l->p = x; } y->p = x->p; if (x->p == nil) { root = y; } else { if (x == x->p->l) { x->p->l = y; } else { x->p->r = y; } ... 阅读全文

posted @ 2014-04-22 21:29 电子幼体 阅读(872) 评论(0) 推荐(0) 编辑

《算法导论》笔记 第13章 13.1 红黑树的性质

摘要: 【笔记】红黑树中每个结点包含五个域:color,key,left,right和p。如果某结点没有一个子结点或父结点,则该域指向NIL。我们把NIL视为二叉树的外结点(叶子),而带关键字的结点视为内结点。一棵二叉树如果满足下面的红黑性质,则为一棵红黑树:1) 每个结点或是红的,或是黑的。2) 根结点是黑的。3) 每个叶结点(NIL)是黑的。4) 如果一个结点是红的,则它的两个儿子都是黑的。5) 对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。采用哨兵来代表NIL,它的color域为BLACK,其它域为任意值。从某个结点x出发(不包括该结点)到达一个叶结点的任意一条路径上,黑色结 阅读全文

posted @ 2014-04-22 17:32 电子幼体 阅读(1484) 评论(0) 推荐(0) 编辑

导航