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

            狠狠精品久久久无码中文字幕 | 99久久精品国内| 久久99精品久久久久久动态图| 久久精品人人槡人妻人人玩AV| 久久精品国产精品青草| 国内精品久久久久久久涩爱| 久久久久久久精品妇女99| 色综合久久久久网| 国内精品伊人久久久久777| av无码久久久久不卡免费网站| 久久青青草原亚洲av无码| 国产精品18久久久久久vr| 久久精品中文字幕大胸| 国产成人精品久久亚洲高清不卡| 日批日出水久久亚洲精品tv| 91久久精一区二区三区大全| 麻豆久久久9性大片| 国产精品免费久久久久久久久| 亚洲av成人无码久久精品| 婷婷久久综合| 99久久精品国产一区二区三区| 久久久久亚洲av无码专区 | 国产成人精品久久二区二区| 亚洲精品视频久久久| 精品久久久久久国产三级| 精品久久久久久亚洲| 久久66热人妻偷产精品9| 久久婷婷国产剧情内射白浆 | 人妻久久久一区二区三区| 久久免费观看视频| 久久本道久久综合伊人| 精品一久久香蕉国产线看播放| 国产精品天天影视久久综合网| 国内精品久久久久久久97牛牛| 久久久久久久亚洲Av无码| 久久久国产精品亚洲一区| 亚洲AV无码久久精品色欲| 久久精品国产99久久无毒不卡| 97久久久久人妻精品专区| 久久亚洲精品视频| 国产AV影片久久久久久 |