//Есть ли данный элемент в Деке public static bool Contains(T data) { DoublyNode <T> current = head; while (current != null) { if (current.Data.Equals(data)) { return(true); } current = current.Next; } return(false); }
//добавление в конец public static void AddLast(T data) { DoublyNode <T> node = new DoublyNode <T>(data); if (head == null) { head = node; } else { tail.Next = node; node.Previous = tail; } tail = node; count++; }
public static int count; // количество элементов в списке //добавление в начало public static void AddFirst(T data) { DoublyNode <T> node = new DoublyNode <T>(data); DoublyNode <T> temp = head; node.Next = temp; head = node; if (count == 0) { tail = head; } else { temp.Previous = node; } count++; }
//удаление последнего public static T RemoveLast() { if (count == 0) { throw new InvalidOperationException(); } T output = tail.Data; if (count == 1) { head = tail = null; } else { tail = tail.Previous; tail.Next = null; } count--; return(output); }
//удаление первого public static T RemoveFirst() { if (count == 0) { throw new InvalidOperationException(); } T output = head.Data; if (count == 1) { head = tail = null; } else { head = head.Next; head.Previous = null; } count--; return(output); }
//очистить Дек public static void Clear() { head = null; tail = null; count = 0; }