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

            国产精品99久久久久久人| 久久久黄片| 91精品国产91久久久久久蜜臀| 久久天堂电影网| 18禁黄久久久AAA片| 国内精品久久人妻互换| 久久久免费观成人影院| 91视频国产91久久久| 亚洲色欲久久久久综合网| 国产精品久久久久久久久免费| 人妻无码久久精品| 亚洲精品国产成人99久久| 亚洲va国产va天堂va久久| 久久久久18| 国产99久久久国产精免费| 欧美一区二区三区久久综合 | 亚洲狠狠婷婷综合久久久久| 免费观看成人久久网免费观看| 一本色综合网久久| 国产精品久久久久久久app| 国产日韩久久免费影院| 丰满少妇高潮惨叫久久久| 国产aⅴ激情无码久久| 日韩影院久久| 国产精品综合久久第一页| 久久精品中文字幕久久| 久久影院综合精品| 色婷婷久久综合中文久久蜜桃av| 综合久久一区二区三区| 久久乐国产精品亚洲综合| 久久精品免费网站网| 国产—久久香蕉国产线看观看| 久久91精品国产91久久小草| 国产成人精品久久免费动漫| 7777久久亚洲中文字幕| 国产精品国色综合久久| 国产精品久久久久AV福利动漫| 国产精品久久久久久一区二区三区 | 97久久精品人人澡人人爽| 久久综合丝袜日本网| 国产精品久久久99|