PUERTA | Puerta TI 2007 | Pregunta 30

Suponga que le dan una implementación de una cola de enteros. Las operaciones que se pueden realizar en la cola son:

i. isEmpty (Q): devuelve verdadero si la cola está vacía; de lo contrario, devuelve falso.

ii. eliminar (Q): elimina el elemento al principio de la cola y devuelve su valor.

iii. insert (Q, i) — inserta el entero i al final de la cola.

Considere la siguiente función:

void f (queue Q) {
int i ;
if (!isEmpty(Q)) {
   i = delete(Q);
   f(Q);
   insert(Q, i);
  }
}

¿Qué operación realiza la función f anterior?
(A) Deja la cola Q sin cambios
(B) Invierte el orden de los elementos en la cola Q
(C) Elimina el elemento al frente de la cola Q y lo inserta en la parte trasera manteniendo los otros elementos en el mismo orden
(D ) Vacía la cola Q

Respuesta: (B)
Explicación: Como es una llamada recursiva, y se elimina desde el frente mientras se inserta desde el final, eso significa que el último elemento se eliminará por fin y se insertará primero en la nueva cola. Y así continuará hasta que la primera llamada ejecute la función de inserción (Q,i).
Entonces, la cola será a la inversa.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *