Реализовать 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;
}
}