̶Z̶i̶m̶a̶ Session is close. The generalized (Generics) data structure “queue” means that this queue can store different types of data, that is, there can be a queue of ints, strings or generally a queue of queues. This is achieved by Generics methods.
The first answer from Google to your question:
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; } }