public Queue Concat(Queue q1, Queue q2) { if (q1 == null & q2 == null) { return new Queue(); } else if (q1 == null) { return (Queue)q2.GetClone(); } else if (q2 == null) { return (Queue)q1.GetClone(); } else { Queue newQueue = (Queue) q1.GetClone(); foreach(int element in q2.queue) { newQueue.queue.Enqueue(element); } return newQueue; } }