Adloun

Renverser avec une pile

Exercice · OCaml (option informatique), chapitre 8 — Piles, files et tables de hachage

É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 ().

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.