public class MyQueue<T>
时间: 2023-11-10 19:05:46 浏览: 80
spring整合JMS实现同步收发消息(基于ActiveMQ的实现)
{
private Stack<T> stack1;
private Stack<T> stack2;
public MyQueue()
{
stack1 = new Stack<T>();
stack2 = new Stack<T>();
}
public void Enqueue(T item)
{
stack1.Push(item);
}
public T Dequeue()
{
// 如果 stack2 不为空,则直接从 stack2 中 Pop 元素
if (stack2.Count > 0)
{
return stack2.Pop();
}
else
{
// 否则将 stack1 中的元素逐个 Pop 并 Push 到 stack2 中,最后从 stack2 中 Pop 元素
while (stack1.Count > 0)
{
stack2.Push(stack1.Pop());
}
return stack2.Pop();
}
}
public int Count
{
get { return stack1.Count + stack2.Count; }
}
}
// 使用示例
MyQueue<int> queue = new MyQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
Console.WriteLine(queue.Dequeue()); // 输出 1
Console.WriteLine(queue.Dequeue()); // 输出 2
queue.Enqueue(4);
Console.WriteLine(queue.Dequeue()); // 输出 3
Console.WriteLine(queue.Dequeue()); // 输出 4
阅读全文