Помогите, пожалуйста, с программированием ** C# Объявите класс "Очередь", имеющий поля...

0 голосов
66 просмотров

Помогите, пожалуйста, с программированием на C# Объявите класс "Очередь", имеющий поля – массив-хранилище для элементов очереди и количество элементов в очереди; методы помещения элемента (в конец) и извлечения элемента (с начала), печати очереди; свойства первого элемента, пустоты очереди, полноты очереди, размера выделенной памяти (для чтения и записи). Переопределить любую операцию.


Информатика (97 баллов) | 66 просмотров
Дан 1 ответ
0 голосов

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();

       }

   }

}


Скачать вложение Текст (TXT)
(4.0k баллов)