Queue特点:
1. 先进先出
2. 注意EnQueue到达ArrayList容量边界的处理:
3. 注意DeQueue,当ArrayList已无元素时的处理:
internal class MyQueue<T>
{
public static int MAXCOUNT = 2;
private ArrayList _queue= new ArrayList(MAXCOUNT);
private int _count=0;
public int Enqueue(T newItem)
{
if (_count == MAXCOUNT -1) {
_queue.Capacity = MAXCOUNT * 2;
}
_count++;
return _queue.Add(newItem);
}
public void Dequeue()
{
if (_queue.Count > 0)
{
_queue.RemoveAt(0);
_count--;
}
else {
Console.WriteLine("there is no data in my queue");
}
}
public int Count
{
get { return _count; }
}
}
测试代码:
MyQueue<int> duaQueue = new MyQueue<int>(); duaQueue.Enqueue(1); duaQueue.Enqueue(2); duaQueue.Enqueue(3); duaQueue.Enqueue(4); int count = duaQueue.Count; duaQueue.Dequeue();