• <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://www.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 閱讀(1136) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C#

            国产V亚洲V天堂无码久久久| 狠狠狠色丁香婷婷综合久久俺| 久久婷婷五月综合成人D啪| 亚洲а∨天堂久久精品9966| 久久精品aⅴ无码中文字字幕不卡| 久久夜色精品国产亚洲| 狠狠色丁香久久婷婷综合图片| 伊人色综合久久天天人手人婷| 香蕉久久一区二区不卡无毒影院| 麻豆久久| 伊人久久国产免费观看视频| 久久精品亚洲乱码伦伦中文| 久久精品国内一区二区三区| 色综合久久中文字幕无码| 91久久精品国产免费直播| 久久99热精品| 国产香蕉97碰碰久久人人| 久久免费视频观看| 久久久久国产| 99精品国产免费久久久久久下载| 一本大道久久香蕉成人网| 亚洲国产成人精品无码久久久久久综合 | 国内精品久久久久影院日本 | 亚洲精品99久久久久中文字幕| 国产高清美女一级a毛片久久w | 久久久精品久久久久久| 热综合一本伊人久久精品| 99精品国产综合久久久久五月天 | 久久精品国产99国产精偷| 久久天天日天天操综合伊人av| 亚洲日本va午夜中文字幕久久| 久久久久久久女国产乱让韩| 久久综合久久综合久久综合| 99精品国产免费久久久久久下载| 亚洲一本综合久久| 久久久亚洲欧洲日产国码二区| 99热成人精品免费久久| 国产精品一区二区久久| 狠色狠色狠狠色综合久久| 久久精品中文无码资源站| 国产精品久久精品|