随笔分类 - 算法导论
摘要:主要介绍以下几个部分:1)在一颗红黑树上求第i小数是多少需要在节点结构种增加一个域size,用来保存该节点中有几个内节点(包括当前节点)OS-SELECT(root[T], i) r = size[left[x]] + 1 //左子树节点树+1,用于判断在左子树找还是右子 //树,或者就是当前节点 if r == i return x ...
阅读全文
摘要:特点:1) 每个节点的颜色或是红,或是黑2)根节点是黑色3)叶节点是黑色4)如果一个节点是红色,则叶子为黑5)对每个节点,从该节点红黑树插入流程:第一步: 和BST的插入过程相似,将待插入节点z插入到一个红黑树的叶子节点,并着红色因为第一步之后可能会违反红黑树的某些性质,所以要进行下一步第二步: 第二步只有当插入节点的父节点为红色时才会执行,因为这个时候才会违反性质4)颜色调整分为六种情况,根据插入节点的父节点是祖父节点的左子树还是右子树分为2种,其中每种情况又有以下三种情况:情况a:插入节点的父节点是红色节点并且插入节点的叔叔节点(祖父节点的另外一个子节点)也是红色。情况b:插入节点是父..
阅读全文
摘要:12.1-2 BST:node.left.key right; } return pre; 12.2-5 如果curr节点有左子女,那么它的前驱一定是左子女中最右边的节点,否则就不是前驱节点个人博客:http://www.yancey.info/?p=125
阅读全文
摘要:6.1-1 堆中高度的定义为root到叶子节点最长简单下降路径上边的数目 2^h lg(n) lg(n)取下整6.1-3 反证6.1-4 叶子节点6.1-5 是6.1-6 否6.1-7 未知6.2.1 略6.2.2 略6.2.3 直接返回,不做修改6.2.4 不做修改6.2.5 void max_heapify(A,i) { while (true) { int l = i*2; int r = i*2 + 1; largest = ...
阅读全文

浙公网安备 33010602011771号