public void AddLast(LinkedNode <T> newNode) { if (Count == 0) { _Head = newNode; _Rear = newNode; _Count++; } else { AddAfter(_Rear, newNode); } }
public void AddFirst(LinkedNode <T> newNode) { if (Count == 0) { _Head = newNode; _Rear = newNode; _Count++; } else { AddBefore(_Head, newNode); } }
public void AddBefore(LinkedNode <T> node, LinkedNode <T> newNode) { if (node == null) { throw new ArgumentException("node is null"); } newNode._Previous = node.Previous; node._Previous = newNode; newNode._Next = node; if (newNode.Previous != null) { newNode.Previous._Next = node; } else { _Head = newNode; } _Count++; }
public void AddAfter(LinkedNode <T> node, LinkedNode <T> newNode) { if (node == null) { throw new ArgumentException("node is null"); } newNode._Next = node.Next; node._Next = newNode; newNode._Previous = node; if (newNode.Next != null) { newNode.Next._Previous = node; } else { _Rear = newNode; } _Count++; }
LinkedTable() { _Head = null; _Rear = null; _Count = 0; }
public LinkedNode(T value) { _Previous = null; _Next = null; _Value = value; }
public LinkedNode(LinkedNode <T> previous, LinkedNode <T> next, T value) { _Previous = previous; _Next = next; _Value = value; }
public LinkedNode() { _Previous = null; _Next = null; _Value = default(T); }
public void AddBefore(LinkedNode <T> node, T item) { AddBefore(node, new LinkedNode <T>(item)); }
public void AddAfter(LinkedNode <T> node, T item) { AddAfter(node, new LinkedNode <T>(item)); }