Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        public void Push(T element)
        {
            SimpleListItem <T> a = new SimpleListItem <T>(element);

            if (this.head == null)
            {
                this.last      = a;
                this.last.next = null;
                this.head      = this.last;
                this.Count     = 1;
            }
            else
            {
                a.next    = this.last;
                this.last = a;
                this.head = this.last;
                ++this.Count;
            }
        }
Exemplo n.º 5
0
        ///<summary>
        ///Добавление элемента
        ///</summary>
        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;
            }
        }
Exemplo n.º 6
0
        public T Pop()
        {
            T Result = default(T);

            if (this.Count == 0)
            {
                return(Result);
            }
            if (this.Count == 1)
            {
                Result     = this.first.data;
                this.first = null;
                this.last  = null;
            }
            else
            {
                SimpleListItem <T> newLast = this.GetItem(this.Count - 2);
                Result       = newLast.next.data;
                this.last    = newLast;
                newLast.next = null;
            }
            this.Count--;
            return(Result);
        }
Exemplo n.º 7
0
 public Stack()
 {
     this.head = null;
 }