Метод EnqueueLast
Поведение: Добавляет элемент в конец очереди. Этот элемент будет взят из очереди следующим при вызове метода DequeueLast.
Сложность: O(1).
public void EnqueueLast(T value)
{
_items.AddLast(value);
}
Метод DequeueFirst
Поведение: Удаляет элемент из начала очереди и возвращает его. Если очередь пустая, кидает InvalidOperationException.
Сложность: O(1).
public T DequeueFirst()
{
if (_items.Count == 0)
{
throw new InvalidOperationException("DequeueFirst called when deque is empty");
}
T temp = _items.Head.Value;
_items.RemoveFirst();
return temp;
}
Метод DequeueLast
Поведение: Удаляет элемент с конца очереди и возвращает его. Если очередь пустая, кидает InvalidOperationException.
Сложность: O(1).
public T DequeueLast()
{
if (_items.Count == 0)
{
throw new InvalidOperationException("DequeueLast called when deque is empty");
}
T temp = _items.Tail.Value;
_items.RemoveLast();
return temp;
}
Метод PeekFirst
Поведение: Возвращает элемент из начала очереди, не изменяя ее. Если очередь пустая, кидает InvalidOperationException.
Сложность: O(1).
public T PeekFirst()
{
if (_items.Count == 0)
{
throw new InvalidOperationException("PeekFirst called when deque is empty");
}
return _items.Head.Value;
}
Метод PeekLast
Поведение: Возвращает элемент с конца очереди, не изменяя ее. Если очередь пустая, кидает InvalidOperationException.
Сложность: O(1).
public T PeekLast()
{
if (_items.Count == 0)
{
throw new InvalidOperationException("PeekLast called when deque is empty");
}
return _items.Tail.Value;
}
Do'stlaringiz bilan baham: |