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

Вопрос школьника по предмету Информатика

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

Ответ учителя по предмету Информатика

using System;

using System.Collections.Generic;

using System.Linq;

namespace Queue

{

   public class Queue<T>

   {

       private List<T> _items = new List<T>();

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

           // Добавляем новые элементы в очередь.

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

       }

   }

}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей