Skip to content
Snippets Groups Projects
Select Git revision
  • 5dbc3e3559712103f0b87b641bfaebecec0e6cee
  • master default protected
2 results

arbre_k_aire.py

Blame
  • Forked from Vuillemot Romain / INF-TC1
    Source project has a limited visibility.
    arbre_k_aire.py 879 B
    class Noeud:
        def __init__(self, v, c = []):
            self.v = v
            self.c = c
    
    def parcours_affiche(arbre):
        for c in arbre.c:
            parcours_affiche(c)
    
        print(arbre.v)
    
    
    def parcours_recherche(arbre, valeur):
        stack = arbre.c
    
        if valeur > arbre.v:
            return False
    
        if valeur == arbre.v:
            return True
    
        prev = stack[0].v
    
        while len(stack) > 0:
    
            children = stack.pop(0)
    
            if valeur == children.v:
                return True
    
            if valeur > prev and valeur < children.v:
                stack = children.c
                prev = stack[0].v
            else:
                prev = children.v
    
        return False
    
    
    racine = Noeud(13, [Noeud(4, [Noeud(1), Noeud(2), Noeud(3)]), Noeud(8, [Noeud(5), Noeud(6), Noeud(7)]),  Noeud(12, [Noeud(9), Noeud(10), Noeud(11)])])
    
    print(parcours_affiche(racine))
    print(parcours_recherche(racine, 11))