public void AddToFront(T item) { SinglyLinkedNode <T> newNode = new SinglyLinkedNode <T>(item, head); head = newNode; count++; }
public SinglyLinkedNode <T> RemoveAfter() { SinglyLinkedNode <T> nextNode = NextNode.NextNode; NextNode = NextNode.NextNode; return(nextNode); }
public SinglyLinkedNode <T> AddAfter(T item) { SinglyLinkedNode <T> newNode = new SinglyLinkedNode <T>(item); NextNode.Item = item; return(newNode); }
public new void ToString() { SinglyLinkedNode <T> nodeOfi = head; for (int i = 0; i < count; i++) { Console.WriteLine(nodeOfi.Item); nodeOfi = nodeOfi.NextNode; } }
private SinglyLinkedNode <T> getNode(int index) { SinglyLinkedNode <T> nodeOfi = head; for (int i = 0; i < index; i++) { nodeOfi = nodeOfi.NextNode; } return(nodeOfi); }
public void AddtoEnd(T item) { if (head != null) { SinglyLinkedNode <T> lastNode = getNode(count - 1); SinglyLinkedNode <T> newNode = new SinglyLinkedNode <T>(item, null); lastNode.NextNode = newNode; count++; } else { head = new SinglyLinkedNode <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 { SinglyLinkedNode <T> lastNode = getNode(count - 1); if (lastNode == null) { return(false); } SinglyLinkedNode <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 SinglyLinkedNode(T item, SinglyLinkedNode <T> next = null) { Item = item; NextNode = next; }