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

            久久人人超碰精品CAOPOREN| 久久久久久狠狠丁香| 久久无码精品一区二区三区| 国产精品99久久不卡| 欧美精品丝袜久久久中文字幕 | 精品少妇人妻av无码久久| 国产精品一区二区久久| 久久综合成人网| 99久久精品国产高清一区二区| 国产成人精品久久一区二区三区av | 午夜精品久久久久久久无码| 久久亚洲精品中文字幕| 一本大道加勒比久久综合| 99久久综合国产精品免费| 国产精品99久久精品| 久久久久av无码免费网| 国产精品无码久久综合网| 国内精品人妻无码久久久影院| 欧美久久一区二区三区| 久久精品国产亚洲网站| 久久久久亚洲AV片无码下载蜜桃| 97久久精品人人做人人爽| 精品久久久无码人妻中文字幕豆芽| 久久黄视频| 亚洲一区中文字幕久久| 久久精品国产亚洲AV无码娇色| 亚洲精品综合久久| 久久亚洲国产精品五月天婷| 国产精品天天影视久久综合网| 18禁黄久久久AAA片| 性做久久久久久久久老女人| 精品国产91久久久久久久a| 久久香蕉国产线看观看乱码| 99久久无色码中文字幕| 精品久久久久久无码专区不卡| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 欧美熟妇另类久久久久久不卡| 伊人久久大香线蕉精品不卡 | 91精品国产色综久久| 精品熟女少妇av免费久久| 2021少妇久久久久久久久久|