# ================================================ # Sujet 4. # ================================================ from queue import LifoQueue # myStack = LifoQueue() creates a queue # myStack.put(x) put x in myStack # myStack.get_nowait() return the first element, or an exception # myStack.empty() return True/False if myStack is empty/non-empty class FifoQueue: def __init__(self): self.in_stack = LifoQueue() self.out_stack = LifoQueue() def empty(self): # Compléter ici self. def put(self, x): # Ici aussi def get_nowait(self): if self.empty(): raise ValueError("You cannot get an element from an empty FifoQueue") else: # Ici aussi class Tree: def __init__(self, x, leftTree = None, rightTree = None): self.value = x self.leftTree = leftTree self.rightTree = rightTree exampleTree = Tree(1, Tree(3, Tree(7), Tree(6)), Tree(2, Tree(5), Tree(4))) def parcoursArabe(tree): ''' Une fonction telle que parcoursArabe(exampleTree) renvoie [1,2,3,4,5,6,7]. Noter que ça n'est pas un nom de parcours standard ''' def parcoursArabeAux(file, visites): if file.empty(): return visites else: # Compléter ici return parcoursArabeAux(file, visites) # Ici aussi return parcoursArabeAux(f, [])