1) Avec la représentation du cours d'une file par une liste [3, *, *, A, B, C] où l[0] est l'indice du premier élément de la file, les opérations enfile et défile ont des complexités en $O(1)$. La fonction peek consiste à renvoyer l[l[0]] si l[0] > 0, et None sinon. 2) #+begin_src python def hamming(n): f2, f3, f5 = nouvelle_file(), nouvelle_file(), nouvelle_file() l = [1] enfile(f2, 2);enfile(f3, 3);enfile(f5, 5) while True: k2, k3, k5 = peek(f2), peek(f3), peek(f5) m = min(k2, k3, k5) if k2 == m: defile(f2) if k3 == m: defile(f3) if k5 == m: defile(f5) enfile(f2, 2*m); enfile(f3, 3*m); enfile(f5, 5*m) if m