//Remove(T value) public bool Remove(T value) { if (head == null) { return(false); } if (head.Item.CompareTo(value) == 0) { head = head.Next; Count--; return(true); } //stop on the node before we want to remove SinglyLinkedNode <T> temp = head; while (temp.Next.Item.CompareTo(value) != 0) { temp = temp.Next; } //link AROUND the node temp.Next = temp.Next.Next; Count--; return(true); }
//RemoveFirst() public bool RemoveFirst() { if (head == null) { return(false); } head = head.Next; Count--; return(true); }
public IEnumerator <T> GetEnumerator() { SinglyLinkedNode <T> current = head; while (current != null) { yield return(current.Item); current = current.Next; } }
public void AddStart(T value) { Count++; if (head == null) { head = new SinglyLinkedNode <T>(value); tail = head; } else { SinglyLinkedNode <T> temp = head; head = new SinglyLinkedNode <T>(value); head.Next = temp; } }
//AddAfter(Node, value) public bool AddAfter(SinglyLinkedNode <T> node, T value) { SinglyLinkedNode <T> temp = head; if (temp == null) { return(false); } while (temp.Item.CompareTo(node.Item) != 0) { temp = temp.Next; } Count++; var tempNode = new SinglyLinkedNode <T>(value, temp.Next); temp.Next = tempNode; return(true); }
public void AddEnd(T value) { Count++; if (head == null) { head = new SinglyLinkedNode <T>(value); tail = head; } else { tail.Next = new SinglyLinkedNode <T>(value); tail = tail.Next; /*SinglyLinkedNode<T> temp = head; * while (temp.Next != null) * { * temp = temp.Next; * } * temp.Next = new SinglyLinkedNode<T>(value);*/ } }
public bool AddAt(T value, uint index) { SinglyLinkedNode <T> temp = head; /*if (index == 0) * { * head = new SinglyLinkedNode<T>(value, temp.Next); * }*/ if (temp == null) { return(false); } for (int i = 0; i < index - 1; i++) { temp = temp.Next; } var node = new SinglyLinkedNode <T>(value, temp.Next); temp.Next = node; Count++; return(true); }
public SinglyLinkedNode(T itemToStore, SinglyLinkedNode <T> next = null) { Item = itemToStore; Next = next; }
public SinglyLinkedList() { Count = 0; head = null; tail = null; }
//Clear public void Clear() { Count = 0; head = null; }