// Delete the StringNode from the list public void DeleteNode(StringNode nodeToDelete) { //if theres only one pellet if (headPointer == tailPointer) { headPointer = null; tailPointer = null; } //if deleting last node else if (nodeToDelete == tailPointer) { StringNode nodeWalker = headPointer; while (nodeWalker.Next != nodeToDelete) { nodeWalker = nodeWalker.Next; } tailPointer = nodeWalker; } // if deleting frist pellet else if (headPointer == nodeToDelete) { headPointer = nodeToDelete.Next; } //if deleting pellet in linked list longer than 2 else { StringNode nodeWalker = headPointer; while (nodeWalker != nodeToDelete) { nodeWalker = nodeWalker.Next; } nodeWalker = nodeToDelete.Next; } }
// Walk the list, counting the number of StringNodes. Return the count. public int Count() { int nodeCount = 0; StringNode nodeWalker = headPointer; while (nodeWalker != null) { nodeCount++; nodeWalker = nodeWalker.Next; } return(nodeCount); }
// Add node at the start of the list. public void AddNode(String newString) { StringNode newNode = new StringNode(newString); if (headPointer != null) { newNode.Next = headPointer; headPointer = newNode; } else{ headPointer = newNode; tailPointer = newNode; } }
// removes first stringnode from stack and returns its string value public String Pop() { if (stack.Count() > 0) { StringNode firstString = stack.GetFirst(); stack.RemoveFirst(); return(firstString.toString()); } else { throw new System.ArgumentNullException("There are no Strings in the Stack pop."); } }
// Add node at the start of the list. public void AddNode(String newString) { StringNode newNode = new StringNode(newString); if (headPointer != null) { newNode.Next = headPointer; headPointer = newNode; } else { headPointer = newNode; tailPointer = newNode; } }
//constructor sets string and next values public StringNode(String newString) { stringValue = newString; Next = null; }