예제 #1
0
 public T Pop()
 {
     SimpleList.SimpleListItem <T> itemPopped = last;
     Count = Count - 1;
     if (Count == 0)
     {
         last  = null;
         first = null;
     }
     else
     {
         SimpleList.SimpleListItem <T> newLastItem = this.GetItem(Count - 1);
         newLastItem.next = null;
         last             = newLastItem;
     }
     return(itemPopped.data);
 }
예제 #2
0
        public SimpleListItem <T> GetItem(int number)
        {
            if ((number < 0) || (number >= this.Count))
            {
                throw new Exception("Выход за границу индекса");
            }

            SimpleListItem <T> current = this.first;
            int i = 0;

            while (i < number)
            {
                current = current.next;
                i++;
            }

            return(current);
        }
예제 #3
0
        /// <summary>
        /// Добавление элемента
        /// </summary>
        /// <param name="element"></param>
        public void Add(T element)
        {
            SimpleListItem <T> newItem = new SimpleListItem <T>(element);

            this.Count++;

            //Добавление первого элемента
            if (last == null)
            {
                this.first = newItem;
                this.last  = newItem;
            }
            //Добавление следующих элементов
            else
            {
                //Присоединение элемента к цепочке
                this.last.next = newItem;
                //Просоединенный элемент считается последним
                this.last = newItem;
            }
        }
예제 #4
0
        /// <summary>
        /// Чтение контейнера с заданным номером
        /// </summary>
        public SimpleListItem <T> GetItem(int number)
        {
            if ((number < 0) || (number >= this.Count))
            {
                //Можно создать собственный класс исключения
                throw new Exception("Выход за границу индекса");
            }

            SimpleListItem <T> current = this.first;
            int i = 0;

            //Пропускаем нужное количество элементов
            while (i < number)
            {
                //Переход к следующему элементу
                current = current.next;
                //Увеличение счетчика
                i++;
            }

            return(current);
        }