예제 #1
0
        public static void Sort <TNode>(
            IBidiNodeList <TNode> List, Comparison <TNode> Comparison)
            where TNode : class, IBidiNode <TNode>
        {
            BidiNodeUtility <TNode> .LinkList Link;
            BidiNodeUtility <TNode> .Alloc(List, out Link);

            Sort(ref Link, Comparison);
            List.First = Link.First.Data;
            List.Last  = Link.Last.Data;
            BidiNodeUtility <TNode> .Assign(ref Link);
        }
예제 #2
0
        public static void Sort <TNode>(
            ref BidiNodeUtility <TNode> .Dump Dump, IBidiNodeList <TNode> List)
            where TNode : class, IBidiNode <TNode>, IComparable <TNode>
        {
            BidiNodeUtility <TNode> .LinkList Link;
            BidiNodeUtility <TNode> .Alloc(List, ref Dump, out Link);

            Sort(ref Link);
            List.First = Link.First.Data;
            List.Last  = Link.Last.Data;
            BidiNodeUtility <TNode> .FreeAssign(ref Link, ref Dump);
        }
예제 #3
0
        public static void Sort <TNode, TComparer>(
            IBidiNodeList <TNode> List, ref TComparer Comparer)
            where TNode : class, IBidiNode <TNode> where TComparer : struct, IComparer <TNode>
        {
            BidiNodeUtility <TNode> .LinkList Link;
            BidiNodeUtility <TNode> .Alloc(List, out Link);

            Sort(ref Link, Comparer);
            List.First = Link.First.Data;
            List.Last  = Link.Last.Data;
            BidiNodeUtility <TNode> .Assign(ref Link);
        }