我尝试将基于Array
的通用队列实现为数据结构。
public class ArrayQueue<T>
{
public T Dequeue()
{
if (Queue[Tail] == null)
return null;
T value = Queue[Tail];
Queue[Tail] = null;
Tail--;
if (Tail - Head < Queue.Length / (ResizeCoefficient * 2))
ResizeQueue(Queue.Length / ResizeCoefficient);
return value;
}
...
private T[] Queue;
}
正如你所看到的,我使用null作为&#34;空&#34;单元格而不是default(T)
。
那是因为如果T是int,default(int) = 0
和0可以是有效输入,而不是空值。所以T必须是引用类型或Nullable
。但是,我不希望客户打扰它,课程应该同时支持ArrayQueue<int>
和ArrayQueue<Product>
。
您能否建议使用没有约束的泛型类的任何解决方案,同时能够Array
类型的null
?