Exemplo n.º 1
0
        public void Push(T item)
        {
            var newItem = new LinkedStackItem <T>(item);

            if (Count == 0)
            {
                LastItem = newItem;
            }
            newItem.PreviosItem = LastItem;
            LastItem.NextItem   = newItem;
            LastItem            = newItem;
            Count++;
        }
 public void Push(T item)
 {
     if (head == null)
     {
         head = tail = new LinkedStackItem <T>
         {
             Item = item,
             Prev = null
         };
     }
     else
     {
         var prevHead = head;
         head = new LinkedStackItem <T>
         {
             Item = item,
             Prev = prevHead
         };
     }
 }
        public T Pop()
        {
            if (head == null)
            {
                throw new InvalidOperationException();
            }

            if (head == tail)
            {
                var value = head.Item;
                head = null;
                tail = null;

                return(value);
            }

            var prevHead = head;

            head = head.Prev;

            return(prevHead.Item);
        }
Exemplo n.º 4
0
 public void CopyLinkedStack(LinkedStackItem <T> item, int count)
 {
     LastItem = item;
     Count    = count;
 }