Рубрики

Структуры данных | Очередь | Вопрос 1

Ниже приведен C-подобный псевдокод функции, которая принимает в качестве аргумента очередь и использует стек S для обработки.

void fun(Queue *Q)

{

    Stack S;  // Скажем, это создает пустой стек S

  

    // Выполнить, пока Q не пусто

    while (!isEmpty(Q))

    {

        // снимаем с очереди элемент из Q и переносим его в S

        push(&S, deQueue(Q));

    }

  

    // Выполнить, пока стек S не пуст

    while (!isEmpty(&S))

    {

      // извлекаем элемент из S и ставим в очередь poppped элемент в Q

      enQueue(Q, pop(&S));

    }

}

Что вообще делает вышеуказанная функция?
(A) удаляет последнее из Q
(B) Сохраняет Q таким же, каким он был до вызова
(C) делает Q пустым
(D) полностью изменяет Q

Ответ: (Д)
Объяснение: Функция принимает очередь Q в качестве аргумента. Он удаляет все элементы из Q и помещает их в стек S. Затем извлекает все элементы из S и помещает их в очередь обратно в Q. Поскольку стек имеет порядок LIFO, все элементы очереди обращаются в обратном направлении.

Рекомендуемые посты:

Структуры данных | Очередь | Вопрос 1

0.00 (0%) 0 votes