//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;

//namespace DataStructures
//{
//    public class Stack<T>
//    {
//        public Stack()
//            : this(-1) { }

//        public Stack(int size)
//        {
//            Size = size;
//            Nodes = new List<Node<T>>();
//        }

//        public int Size { get; set; }

//        public List<Node<T>> Nodes { get; set; }

//        public bool Push(params T[] newData)
//        {
//            if (newData.Length + Nodes.Count > Size && Size != (int)Defaults.UNDEFINED)
//                return false;

//            for (int i = 0; i < newData.Length; i++)
//                Nodes.Add(new Node<T>(Nodes.Count, newData[i]));

//            return true;
//        }

//        public T Pop()
//        {
//            T returnData;

//            if (Nodes.Count == 0)
//                return default(T);
//            else
//                returnData = Nodes[Nodes.Count - 1].Data;

//            Nodes.RemoveAt(Nodes.Count - 1);
//            return returnData;
//        }

//        public override string ToString()
//        {
//            String outputStr = String.Empty;

//            for (int i = 0; i < Nodes.Count; i++)
//            {
//                outputStr += Nodes[i].Data;
//                if (i < Nodes.Count - 1)
//                    outputStr += ", ";
//            }

//            outputStr += String.Format("\n\tCapacity = {0}/{1}",
//                Nodes.Count, Size);

//            return outputStr;
//        }
//    }
//}
