• <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 閱讀(1108) 評論(0)  編輯 收藏 引用 所屬分類: C#

            A狠狠久久蜜臀婷色中文网| 亚洲另类欧美综合久久图片区| 久久丫精品国产亚洲av| 久久国产亚洲精品无码| 国内精品久久久久久久亚洲| 欧美粉嫩小泬久久久久久久| 99精品久久久久久久婷婷| 国产精品视频久久久| 一级女性全黄久久生活片免费| 亚洲va久久久噜噜噜久久男同| 日本精品久久久久中文字幕8| 国产精品久久久久久久人人看| 72种姿势欧美久久久久大黄蕉| 久久综合色区| 久久久久免费精品国产| 久久国产AVJUST麻豆| 国产亚州精品女人久久久久久 | 亚洲精品乱码久久久久久蜜桃图片 | 久久免费观看视频| 国产精品久久国产精麻豆99网站| 亚洲国产成人精品无码久久久久久综合| 久久综合噜噜激激的五月天| 日本久久久久久久久久| 久久国产视频99电影| 91精品国产综合久久四虎久久无码一级| 久久久无码人妻精品无码| 久久香综合精品久久伊人| 久久久中文字幕日本| 久久国产精品免费一区二区三区| 99久久99久久久精品齐齐| 少妇久久久久久久久久| 久久亚洲AV无码精品色午夜 | 99久久精品这里只有精品| 99久久人妻无码精品系列| 日本强好片久久久久久AAA| 久久综合成人网| 亚洲欧美成人久久综合中文网 | 国产成人99久久亚洲综合精品 | 久久精品国产99久久久古代| 色婷婷狠狠久久综合五月| 欧美亚洲另类久久综合婷婷 |