OCaml (option informatique) · Chapitre 8 · Exercice de TD
Renverser avec une pile
Piles, files et tables de hachage · niveau 2
Énoncé
Écrire renverse_file f qui renverse l'ordre des éléments d'une file (le dernier devient le premier), en s'aidant d'une pile.
Corrigé
let renverse_file f =
let p = Stack.create () in
while not (Queue.is_empty f) do
Stack.push (Queue.pop f) p
done;
while not (Stack.is_empty p) do
Queue.push (Stack.pop p) f
done
On vide la file dans une pile : l'ordre s'inverse (FIFO puis LIFO). On revide la pile dans la file : les éléments y reviennent renversés. La file f est modifiée sur place ; la fonction renvoie ().
Exercices semblables
- Parenthésage équilibré corrigé
- Compter les occurrences corrigé
- Premier doublon corrigé
- Mémoïsation de Fibonacci corrigé
- Évaluer une expression postfixe corrigé