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.
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