题目
复制队列。编写一个新的构造函数,使以下代码
Queue<Item> r=new Queue<Item>(q);
得到的r指向队列q的一个新的独立的副本。可以对q或r进行任意入列或出列的操作但它们不会相互影响。提示:从q中取出所有的元素再将它们插入q和r。
思路
对q进行q.sizez()次dequeue(),将每一次出列的item再插入q和r。也可以使用实现迭代器的Queue的foreach方法(foreach只是操作数据)。
代码
方法一
public E41(E41 q)
{
int thissize=q.size();
for(int i=0;i<thissize;i++)
{
Item item=(Item) q.dequeue();
this.enqueue(item);
q.enqueue(item);
}
}
方法二
public Queue(Queue<Item> queue)
{
for(Item i:queue)
enqueue(i);
}