Exemplo n.º 1
0
        /// <summary>
        /// добавить значение в стек
        /// </summary>
        /// <param name="value">значение для добавления</param>
        public void Push(int value)
        {
            var newElement = new ListStackElement(value, head);

            head = newElement;
            Length++;
        }
Exemplo n.º 2
0
        /// <summary>
        /// проверить, принадлежит ли значение списку
        /// </summary>
        /// <param name="value">значение</param>
        /// <returns>значение принадлежит списку</returns>
        public bool IsContaining(int value)
        {
            ListStackElement element = head;

            while ((element != null) && (element.Value != value))
            {
                element = element.Next;
            }
            return((element != null) && (element.Value == value));
        }
Exemplo n.º 3
0
        /// <summary>
        /// вернуть значение из головы и удалить его из стека
        /// </summary>
        /// <returns>значение</returns>
        public int Pop()
        {
            if (head == null)
            {
                throw new EmptyStackException("поппытка извлечь элемент из пустого стека");
            }
            int value = head.Value;

            head = head.Next;
            Length--;

            return(value);
        }
Exemplo n.º 4
0
 /// <summary>
 /// конструктор, создающий элемент списка
 /// </summary>
 /// <param name="value">значение</param>
 /// <param name="next">следующий элемент</param>
 public ListStackElement(int value, ListStackElement next)
 {
     this.Value = value;
     this.Next  = next;
 }