class Noeud:
    def __init__(self, v, c = []):
        self.v = v
        self.c = c

def parcours(n):
    stack = []
    stack.append(n)
    r = []
    while len(stack) > 0:
        current = stack.pop(0)
        r.append(current.v)
        for v in current.c:
            stack.append(v)
    return r

if __name__=="__main__": 

    print(parcours(Noeud(1,                         \
                    [                               \
                        Noeud(2, [                  \
                            Noeud(4), Noeud(5)      \
                        ]),                         \
                        Noeud(3)                    \
                    ]                               \
                )                                   \
    ))

    # [1, 2, 3, 4, 5]
    print(parcours(Noeud(5, [Noeud(4, [Noeud(2), Noeud(1)]), Noeud(3)])))
    # [5, 4, 3, 1, 2]
    print(parcours(Noeud(5, [Noeud(1), Noeud(2), Noeud(3), Noeud(4)])))
    # [5, 1, 2, 3, 4]
    print(parcours(Noeud(1, [Noeud(5), Noeud(4), Noeud(3), Noeud(2)])))
    # [1, 5, 4, 3, 2]