🖥 Numérique et Sciences Informatiques

< Retour à la liste

Arbres binaires de recherches

https://mensuel.framapad.org/p/62wt7fsd2s-a4qd?lang=fr

https://capytale2.ac-paris.fr/web/c/d4c2-2199451

class Noeud:

    def __init__(self,val):
        self.val = val
        self.g = None
        self.d = None

    def recherche(self,val):
        if self.val == val:
            return True
        elif self.val < val:
            if self.d is not None:
                return self.d.recherche(val)
            else:
                return False
        else:
            if self.g is not None:
                return self.g.recherche(val)
            else:
                return False


    def insert(self, val_a_ajouter):
        if self.val > val_a_ajouter:
            if self.g is None:
                self.g = Noeud(val_a_ajouter)
            else:
                self.g.insert(val_a_ajouter)
        else:
            if self.d is None:
                self.d = Noeud(val_a_ajouter)
            else:
                self.d.insert(val_a_ajouter)

    def infixe(self):
        if self.g :
            self.g.infixe()
        print(self.val)
        if self.d :
            self.d.infixe()

    def prefixe(self):
        print(self.val)
        if self.g :
            self.g.infixe()
        if self.d :
            self.d.infixe()

    def postfixe(self):
        if self.g :
            self.g.infixe()
        if self.d :
            self.d.infixe()
        print(self.val)

class ABR:
    def __init__(self):
        self.racine = None

    def insert(self, val_a_ajouter):
        if self.racine is None:
            self.racine = Noeud(val_a_ajouter)
        else:
            self.racine.insert(val_a_ajouter)

    def recherche(self, val):
        if self.racine is not None:
            self.racine.recherche(val)
        else:
            return False

    def infixe(self):
        self.racine.infixe()

    def postfixe(self):
        self.racine.postfixe()

    def prefixe(self):
        self.racine.prefixe()

class Equipe:
    def __init__(self, nom, age, classement):
        self.nom = nom
        self.age = age
        self.classement = classement

    def __gt__(self,equipe2):
        return self.classement>equipe2.classement

    def __lt__(self, equipe2):
        return self.classement<equipe2.classement

    def __str__(self):
        return self.nom

equipe1 = Equipe("Lakers",1948,15)
equipe2 = Equipe("Warriors",1948,2)
equipe3 = Equipe("Celtics",1948,13)
equipe4 = Equipe("Monaco",1948,1)
equipe5 = Equipe("Miami Heat",1948,10)

abr = ABR()
abr.insert(equipe1)
abr.insert(equipe2)
abr.insert(equipe3)
abr.insert(equipe4)
abr.insert(equipe5)
print(equipe1>equipe2)




Créé par NAWFAL M'KADARA | Dernière contribution le 04 déc. 2023 à 16:57