• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            brent's hut

            Red Black Tree in C#

            Several weeks ago, I tried hard to search an implement of balance binary tree in C#,  what i needed was something like std::set<key, comparator> in C++: the data should be sorted, can be inserted and deleted at low cost and provides iterator which can move forward and backward. It looks like this can be easily achieved by List<T> with List<T>.Sort and List<T>.BinarySearch, the problem is that the performance of List<T> is not acceptable when the data collection size is big in my case.

            I failed to find anything that can be used directly, it is hard to believe, a lot of implement of red-black tree in Java or C++ can be easily got from internet (although none of them meets my requirement), but none in C#.

            So I had to implement one, it was translated from a C++ implement and modified to provide an immutable node.

            Source code 
            http://m.shnenglu.com/Files/aqazero/RBTree.zip
            Use at your own risk!
            Example:
             1         RBTree<int> rbt = new RBTree<int>(Comparer<int>.Default);
             2         rbt.Add(3);
             3         rbt.Add(1);
             4         rbt.Add(10);
             5         rbt.Add(6);
             6         rbt.Add(7);
             7         rbt.Remove(10);
             8         RBNode<int> node6 = rbt.GetNode(6);
             9         rbt.Remove(node6);
            10 
            11         RBNode<int> node = rbt.GetNode(3);
            12         node = node.Prev;
            13         while (null != node)
            14         {
            15             System.Diagnostics.Trace.WriteLine(node.Value);
            16             node = node.Next;
            17         }

            Output:
            1
            3
            7

            posted on 2017-04-29 05:02 brent 閱讀(1126) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C#

            久久婷婷人人澡人人| 伊人久久免费视频| 99久久无码一区人妻| 一本大道加勒比久久综合| 久久播电影网| 国产亚洲精品美女久久久| 国产精品永久久久久久久久久| 国产精品久久婷婷六月丁香| 久久久久一区二区三区| 亚洲国产精品无码久久久久久曰| 久久国产AVJUST麻豆| 久久夜色精品国产亚洲| 国内精品久久人妻互换| 伊人久久大香线蕉精品不卡| 九九久久自然熟的香蕉图片| 久久久久久亚洲精品无码| 亚洲综合婷婷久久| 少妇熟女久久综合网色欲| 精品久久人妻av中文字幕| 亚洲国产成人久久一区WWW| 久久综合狠狠色综合伊人| 欧美日韩精品久久久久| 88久久精品无码一区二区毛片 | 久久99精品久久久久久齐齐 | 四虎国产永久免费久久| 99久久国产亚洲高清观看2024| 伊人久久大香线焦AV综合影院 | 99久久99久久精品免费看蜜桃| 欧美与黑人午夜性猛交久久久| 国产成人久久激情91| 久久久久亚洲精品天堂久久久久久| 99久久99久久精品免费看蜜桃| 欧美精品九九99久久在观看| 国产69精品久久久久777| 久久久久亚洲av无码专区| 国产精品99精品久久免费| 午夜精品久久久久久毛片| 国产成人精品久久免费动漫| 久久天堂AV综合合色蜜桃网| 久久免费小视频| 情人伊人久久综合亚洲|