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

            久久免费美女视频| 亚洲国产香蕉人人爽成AV片久久 | 久久精品国产亚洲综合色| 国产精品久久久久久影院 | 久久久WWW成人免费精品| 久久久久亚洲爆乳少妇无| 久久精品国产免费观看| 大伊人青草狠狠久久| 久久久久这里只有精品| 久久精品人人做人人爽97| 久久国产三级无码一区二区| 人妻中文久久久久| 久久r热这里有精品视频| 污污内射久久一区二区欧美日韩| 日韩人妻无码一区二区三区久久| 久久有码中文字幕| 国产精品久久久久久久久鸭| 久久久精品人妻一区二区三区蜜桃| 国产99精品久久| 亚洲AV乱码久久精品蜜桃| 亚洲七七久久精品中文国产| 久久久国产精品福利免费| 少妇人妻88久久中文字幕| 无码人妻久久一区二区三区蜜桃 | 色偷偷88欧美精品久久久| 久久久久久免费一区二区三区| 色青青草原桃花久久综合| 国产香蕉97碰碰久久人人| 久久AV高清无码| 色欲av伊人久久大香线蕉影院| 国产日韩欧美久久| 久久99国产精品久久久| 久久久噜噜噜久久熟女AA片 | 国产精品一区二区久久精品| 久久国产免费直播| 综合人妻久久一区二区精品| 亚洲精品午夜国产va久久| 一本大道久久东京热无码AV| 天天做夜夜做久久做狠狠| 国产精品久久久久久久久久影院| 久久久久久国产a免费观看不卡|