Реализовать Generics очередь - C#

Узнай цену своей работы

Формулировка задачи:

Реализовать обобщенную (Generics) структуру данных «очередь», позволяющую хранить объекты (ссылочные переменные). Стандартные классы-коллекции .NET не использовать, в качестве внутренней структуры для хранения данных использовать исключительно массивы. Помогите плиз. Очень надо

Решение задачи: «Реализовать Generics очередь»

textual
Листинг программы
    class SimpleQueue<T> where T : class
    {
        private const int _capasityIncrease = 5;
 
        private T[] _array;
        private int _count;
        private int _head;
        private int _tail;
 
        public int Count { get { return _count; } }
 
        public SimpleQueue()
        {
            _array = new T[5];
            _count = 0;
            _head = 0;
            _tail = 0;
        }
 
        public void Enqueue(T item)
        {
            if (_tail >= _array.Length)
            {
                Array.Resize(ref _array, _array.Length + _capasityIncrease);
            }
            _array[_tail] = item;
            _count++;
            _tail++;
        }
        public T Dequeue()
        {
            if (_count == 0)
            {
                throw new InvalidOperationException("Очередь пуста");
            }
            T item = _array[_head];
            _array[_head] = null;
            _head++;
            _count--;
            return item;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы