Ejemplo n.º 1
0
        public BasicStack(T value)
        {
            var item = new StackNode <T>(value);

            Top       = item;
            stackSize = 1;
        }
Ejemplo n.º 2
0
        public void Push(T value)
        {
            var item = new StackNode <T>(value)
            {
                Next = Top
            };

            Top = item;
            stackSize++;
        }
Ejemplo n.º 3
0
        public T Pop()
        {
            if (IsEmpty())
            {
                throw new InvalidOperationException("Stack is empty.");
            }

            var item = Top;

            Top = Top.Next;
            stackSize--;

            return(item.Value);
        }
Ejemplo n.º 4
0
 public bool push(IStackNode <DataType> node)
 {
     if (isEmpty())
     {
         _currentTopNode = node;
     }
     else
     {
         IStackNode <DataType> prevNode = _currentTopNode;
         node.Prev       = prevNode;
         prevNode.Next   = node;
         _currentTopNode = node;
     }
     _size++;
     return(true);
 }
Ejemplo n.º 5
0
 public bool push(DataType data)
 {
     if (isEmpty())
     {
         _currentTopNode = new StackLinkedListNode <DataType>(data);
     }
     else
     {
         IStackNode <DataType> topNode  = new StackLinkedListNode <DataType>(data);
         IStackNode <DataType> prevNode = _currentTopNode;
         topNode.Prev    = prevNode;
         prevNode.Next   = topNode;
         _currentTopNode = topNode;
     }
     _size++;
     return(true);
 }
Ejemplo n.º 6
0
        public DataType pop()
        {
            if (isEmpty())
            {
                return(default(DataType));
            }
            DataType temp = _currentTopNode.data;

            if (_size == 1)
            {
                _currentTopNode = null;
            }
            else
            {
                IStackNode <DataType> prevTopNode = _currentTopNode.Prev;
                prevTopNode.Next = null;
                _currentTopNode  = prevTopNode;
            }
            _size--;
            return(temp);
        }
Ejemplo n.º 7
0
 public void init()
 {
     _size           = 0;
     _currentTopNode = null;
 }