public bool RemoveFirst(out T savedFirstValue) { savedFirstValue = default(T); if (First is null) { return(false); } savedFirstValue = First.Data; if (First.Next == First) { First = null; } else { First.Next.Previous = Last; Last.Next = First.Next; if (First == First) { First = First.Next; } } _count--; return(true); }
public CustomLinkedListEnumerator(CustomCircularDualLinkLinkedList <T> list) { _list = list; _node = list.First; Current = default(T); _index = 0; }
public void AddLast(T data) { CustomDuelLinkLinkedListNode <T> newLast = new CustomDuelLinkLinkedListNode <T>(data) { Next = First, Previous = Last }; Last.Next = newLast; First.Previous = newLast; _count++; }
public bool MoveNext() { if (_node == null) { _index = _list.Count; return(false); } _index++; Current = _node.Data; _node = _node.Next; if (_node == _list.First) { _node = default(CustomDuelLinkLinkedListNode <T>); } return(true); }
public void AddFirst(T data) { CustomDuelLinkLinkedListNode <T> newFirst = new CustomDuelLinkLinkedListNode <T>(data); if (First is null) { newFirst.Next = newFirst; newFirst.Previous = newFirst; } else { newFirst.Next = First; newFirst.Previous = Last; Last.Next = newFirst; First.Previous = newFirst; } First = newFirst; _count++; }
public void Reset() { Current = default(T); _node = _list.First; _index = 0; }