public void AddtoEnd(T item) { if (head != null) { SingleLinkedNode <T> lastNode = getNode(count - 1); SingleLinkedNode <T> newNode = new SingleLinkedNode <T>(item, null); lastNode.NextNode = newNode; count++; } else { head = new SingleLinkedNode <T>(item); count++; } }
public bool removeFromFront() { if (count <= 0) { return(false); } else { if (head == null) { return(false); } head = head.NextNode; count--; return(true); } }
public bool removeFromEnd() { if (count <= 0) { return(false); } else { SingleLinkedNode <T> lastNode = getNode(count - 1); if (lastNode == null) { return(false); } SingleLinkedNode <T> secondLastNode = getNode(count - 1); secondLastNode.NextNode = null; count--; return(true); } }
public bool removeAt(int position) { if (count <= 0 || position > count) { return(false); } else { if (position > 0) { getNode(position - 1).RemoveAfter(); } else { head = head.NextNode; } count--; return(true); } }
public SinglyLinkedList() { head = null; }
public SingleLinkedNode(T item, SingleLinkedNode <T> next = null) { Item = item; NextNode = next; }