(p196)利用顺序统计树求逆序对

来源:互联网 发布:淘宝怎么注册直播 编辑:程序博客网 时间:2024/06/06 14:21

只需要将insert里面的while循环改成下面这个样子就行了,思路是insert的时候,节点每往左移动一次,那么说明它比右边的都要小,所以加上右边的数目,而红黑树的旋转并不会影响

while (next!=t->nil){prev=next;next=new->n<next->n?next->l:next->r;count=new->n<prev->n?count+prev->size-next->size:count;/*这里千万不要用next是否是prev的左指针判断!因为左右孩子可能都是nil,这样会出错*/(prev->size)++;/*插入时经过节点size+1,不需要考虑新增节点是根节点的情况*/}


0 0
原创粉丝点击