Treap实现的名次树

1.感觉之前邵叔叔教的做fib的那个支持删除(其实删除只是打标记,而且不支持插入。。。)和查询的排序二叉树就是个静态的名次树嘛。我居然学到了这么奇怪的数据结构。。。

2.写的时候坑了几次

    (1)不要乱用引用,getKth里那个参数o没过脑子用了引用,结果把树搞烂了,一堆ch[x]赋值成NULL了。

    (2)写查找的时候lchsize<k一开始把不等号写反了。。。泪目

    (3)重载小于号玩脱了。坑了好久。用小于号以前没对指针解除引用。那个if总是进去,每次都左旋,然后基本搞成一条链。果然我语言没学好吗。

POJ1442http://poj.org/problem?id=1442

Code
void clear(Node* &o)
    {
        if(o->ch[0]!=NULL)  clear(o->ch[0]);
        if(o->ch[1]!=NULL)  clear(o->ch[1]);
        delete o;
        o=NULL;
    }

 

posted @ 2013-12-02 21:14  ljlin  阅读(1078)  评论(0)    收藏  举报