public void AddAt(int index, NodeString dataToAdd)
        {
            int count = 0;
            Node currNode = top;
            Node toAdd = new Node(dataToAdd);

            while (currNode != null && count < index)
            {
                count++;
                currNode = currNode.GetNext();
            }

            if (currNode != null && count == index - 1)
            {
                if (currNode.GetNext() != null)
                {
                    toAdd.SetNext(currNode.GetNext());
                    currNode.SetNext(toAdd);
                }
                else
                {
                    currNode.SetNext(toAdd);
                    last = toAdd;
                }
                size++;
            }
        }
        public void AddToBack(NodeString dataToAdd)
        {
            Node toAdd = new Node(dataToAdd);

            if (top == null)
            {
                top = toAdd;
                last = toAdd;
            }
            else
            {
                last.SetNext(toAdd);
            }
            size++;
        }
        static void Main(string[] args)
        {
            LinkedList ll = new LinkedList();

            NodeString toAdd = new NodeString("first");
            ll.AddNode(toAdd);
            toAdd = new NodeString("2nd");
            ll.AddNode(toAdd);
            toAdd = new NodeString("third");
            ll.AddToBack(toAdd);
            toAdd = new NodeString("4th");
            ll.AddAt(2, toAdd);
            toAdd = new NodeString("5th");
            ll.AddAt(7, toAdd);
            Console.WriteLine(ll.ToString());
            ll.Delete();
            ll.DeleteAt(8);
            ll.DeleteFromEnd();

            Console.WriteLine(ll.ToString());
            Console.WriteLine("");
            Console.WriteLine("======End of Program======");
        }
 public void SetData(NodeString newData)
 {
     this.data = newData;
 }
 public Node(NodeString data)
 {
     this.data = data;
     nextNode = null;
 }