using System; using System.Collections.Generic; using System.Linq; namespace Queue { public class Queue { private List _items = new List(); public int Count => _items.Count; public void Enqueue(T item) { if(item == null) { throw new ArgumentNullException(nameof(item)); } _items.Add(item); } public T Dequeue() { var item = GetItem(); _items.Remove(item); return item; } public T Peek() { var item = GetItem(); return item; } private T GetItem() { var item = _items.FirstOrDefault(); if (item == null) { throw new NullReferenceException("Очередь пуста. Нет элементов для получения."); } return item; } } } namespace Queue { class Program { static void Main(string[] args) { // Создаем новую очередь. var queue = new Queue(); // Добавляем новые элементы в очередь. queue.Enqueue(1); queue.Enqueue(7); queue.Enqueue(42); queue.Enqueue(69); queue.Enqueue(-17); Console.WriteLine($"Очередь содержит {queue.Count} элементов."); // Получаем элементы с удалением. var item1 = queue.Dequeue(); Console.WriteLine($"Первый элемент из очереди {item1}."); var item2 = queue.Dequeue(); Console.WriteLine($"Второй элемент из очереди {item2}."); // Добавляем новый элемент в очередь. queue.Enqueue(88); // Просматриваем элемент без удаления. var item3 = queue.Peek(); Console.WriteLine($"Обзор элемента без удаления {item3}."); Console.ReadLine(); } } }