Смотря что вы подразумеваете под слиянием двух очередей. Очередь - это FIFO-структура. Самый легкий способ это добавить элементы одной очереди в начало или конец другой. Тогда, да, это делается за O(n).
woodyJS: Ну значит создаем функцию в качестве параметра передаем туда две очереди. Внутри функции создаем третью очередь размерностью 2n и в цикле от 1 до n записываем в результирующую очередь элементы из двух очередей попеременно. Это будет работать O(n).
woodyJS: int - это целочисленный тип. Никак не очередь. Для очереди в c# можно использовать массивы (array), списки (list), Очереди (queue), самописные классы на основе вышеперечисленных...
V Sh.: изучаю недавно язык
могу ошибаться
но очередью никак не может быть массив и список это все коллекции
там же по принципу первый пришел первый ушел
woodyJS: немного не так выразился. На основе этих классов можно создать очередь самому. Обычно в лабораторных работах просят такое провернуть. Если у вас Queue, то тут примерно так:
public static Queue<int> myFunc(Queue<int> A, Queue<int> B) {
Queue<int> result = new Queue<int>();
while (A.Count > 0 || B.Count > 0) {
if (A.Count > 0) result.Enqueue(A.Dequeue());
if (B.Count > 0) result.Enqueue(B.Dequeue());
}
return result;
}