예제 #1
0
        /// <summary>
        /// Вспомогательный метод для обмена элементов при сортировке
        /// </summary>
        private void Swap(int i, int j)
        {
            SimpleListIt <T> ci = GetItem(i);
            SimpleListIt <T> cj = GetItem(j);
            T temp = ci.data;

            ci.data = cj.data;
            cj.data = temp;
        }
예제 #2
0
        /// <summary>
        /// Для перебора коллекции
        /// </summary>
        public IEnumerator <T> GetEnumerator()
        {
            SimpleListIt <T> list = this.head;

            //Перебор элементов
            while (list != null)
            {
                //Возврат текущего значения
                yield return(list.data);

                //Переход к следующему элементу
                list = list.next;
            }
        }
예제 #3
0
        /// <summary>
        /// Чтение контейнера с заданным номером
        /// </summary>
        public SimpleListIt <T> GetItem(int k)
        {
            if ((k < 0) || (k >= this.Count))
            {
                //Можно создать собственный класс исключения
                throw new Exception("Oops, index's out of range");
            }
            SimpleListIt <T> running = this.head;

            for (int i = 0; i < k; i++)
            {
                running = running.next;
            }
            return(running);
        }
예제 #4
0
        /// <summary>
        /// Добавление элемента
        /// </summary>
        /// <param name="elem"></param>
        public void Add(T elem)
        {
            this.Count++;
            SimpleListIt <T> newItem = new SimpleListIt <T>(elem);

            //Добавление первого элемента
            if (tail == null)
            {
                this.head = newItem;
                this.tail = newItem;
            }
            //Добавление следующих элементов
            else
            {
                //Присоединение элемента к цепочке
                this.tail.next = newItem;
                //Присоединенный элемент считается последним
                this.tail = newItem;
            }
        }