Пример #1
0
        public void Append(T item)
        {
            if (Size == _box.Size * _line)
            {
                _box.Append(new VectorArray <T>(_line));
            }

            _box.Get(Size / _line).Append(item);
            Size++;
        }
Пример #2
0
        public void Set(T v)
        {
            int index = mData.IndexOf(v);

            if (index != -1)
            {
                //找到元素
                mData.Delete(index, out _);
                mData.Append(v);
            }
            else
            {
                //添加数据
                if (mData.IsFull())
                {
                    mData.Delete(0, out _);
                }
                mData.Append(v);
            }
        }
Пример #3
0
        public void Enqueue(uint priority, T item)
        {
            Size++;
            if (priority + 1 > _box.Size)
            {
                for (var i = _box.Size; i <= priority; i++)
                {
                    _box.Append(new FactorArray <T>());
                }
            }

            _box.Get((int)priority).Append(item);
        }
Пример #4
0
        static void TestArray()
        {
            Comparison <int> comparison = delegate(int a, int b)
            {
                if (a > b)
                {
                    return(1);
                }
                else if (a == b)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            };

            SortArray <int> sortArray = new SortArray <int>(2);

            sortArray.Comparer = comparison;

            //IArray<int> array = new VariableArray<int>(2);
            IArray <int> array = sortArray;

            array.Append(10);
            Console.WriteLine(array);
            array.Append(22);
            Console.WriteLine(array);
            array.Append(32);
            Console.WriteLine(array);
            array.Append(4);
            Console.WriteLine(array);
            array.Append(51);
            Console.WriteLine(array);
            array.Append(6);
            Console.WriteLine(array);

            Console.WriteLine(array.IndexOf(4));

            SortArray <int> sortArray2 = new SortArray <int>(2);

            sortArray2.Comparer = comparison;

            sortArray2.Append(100);
            sortArray2.Append(200);
            sortArray2.Append(102);
            sortArray2.Append(300);
            sortArray2.Append(160);
            sortArray2.Append(150);

            Console.WriteLine(sortArray2);

            sortArray2.Merge(array as SortArray <int>);

            Console.WriteLine(sortArray2);
        }
Пример #5
0
        static void TestLinkedList()
        {
            Comparison <int> comparison = delegate(int a, int b)
            {
                if (a > b)
                {
                    return(1);
                }
                else if (a == b)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            };

            SingleLinkedList <int> linkedList = new SingleLinkedList <int>();
            IArray <int>           array      = linkedList;

            array.Append(10);
            Console.WriteLine(array);
            array.Append(22);
            Console.WriteLine(array);
            array.Append(32);
            Console.WriteLine(array);
            array.Append(4);
            Console.WriteLine(array);
            array.Append(51);
            Console.WriteLine(array);
            array.Append(6);
            Console.WriteLine(array);

            Console.WriteLine(array.IndexOf(4));
            Console.WriteLine(array[0]);
            Console.WriteLine(array[1]);
            Console.WriteLine(array[2]);
            Console.WriteLine(array[3]);
            Console.WriteLine(array[4]);
            Console.WriteLine(array[5]);
            Console.WriteLine(array[6]);
        }