Le 19 décembre 2021 à 22:24:59 :
Le 19 décembre 2021 à 22:20:09 :
mais juste, pour créer les arbres (genre en insérant des valeurs dans les noeuds) je fais comment car j'ai pas défini de valeurs làIl te faut créer une fonction pour rajouter des éléments à l'arbre. En fait ta classe Noeud c'est ce qui va former un arbre par récursion.
Et manque deux propriétés dans la classe Noeud: gauche et droite, à la valeur None. Qui vont chacune contenir des Noeuds.
et ça donne quoi du coup ?
Le 19 décembre 2021 à 22:22:04 :
Le 19 décembre 2021 à 22:16:56 :
Le 19 décembre 2021 à 22:15:09 :
Le 19 décembre 2021 à 22:10:32 :
Le 19 décembre 2021 à 22:09:09 :
Le 19 décembre 2021 à 22:07:16 :
Le 19 décembre 2021 à 22:06:28 :
Le 19 décembre 2021 à 22:05:26 :
Le 19 décembre 2021 à 22:04:59 :
il te faut pas de classe arbre.T'as juste besoin d'une classe noeud.
et du coup ton root c'est quoi par rapport à mon truc ?
c'est un noeud
donc je mets noeud à la place de root ?
Tu fais ce qui est expliqué dans mon commentaire à 22h01, et pour comprendre ce que j'ai écrit, tu dois simplement traduire "root" par "noeud"
en admettant que ta root contienne:
value : entier
left : root
right : rootbah je comprends pas pk j'ai besoin juste de la class noeud
class Noeud:
def __init__(self, cle):
self._cle = cle
class Arbre:
def __init__(self, racine):
self.racine = Noeud
self.gau = None
self.dro = Nonedans la classe arbre, j'ai le left et right donc on en a besoin non ?
Si tu continues à vouloir utiliser des classes pour ce genre de problèmes en python tu vas juste te casser le cerveau, tu fais de la POO quand tu veux utiliser des modèles de calculs récurrents au sein d'une application pour alléger ton code, pas pour résoudre des problèmes de logiques courts
La solution intelligente c'est d'utiliser un dict tout simplement
et c quoi le code du coup ?
Avec un dict ton arbre sur les 3 premiers niveaux devrait ressembler à ça :
arbre = { 15 : { "left" : { 6 : { "left": 2, "right":3 } }, "right" : { 18: { "left": 16, "right":25 } } } }
C'est ton arbre de base, ensuite à toi de construire des fonctions récursives/des boucles if pour parcourir le dictionnaire
nn je preferis avec les conditions car là c chaud avec les dicos
class Noeud:
def __init__(self, cle):
self._cle = cle
et après je mets quoi ,? pour faire l'exo
Le 19 décembre 2021 à 22:15:09 :
Le 19 décembre 2021 à 22:10:32 :
Le 19 décembre 2021 à 22:09:09 :
Le 19 décembre 2021 à 22:07:16 :
Le 19 décembre 2021 à 22:06:28 :
Le 19 décembre 2021 à 22:05:26 :
Le 19 décembre 2021 à 22:04:59 :
il te faut pas de classe arbre.T'as juste besoin d'une classe noeud.
et du coup ton root c'est quoi par rapport à mon truc ?
c'est un noeud
donc je mets noeud à la place de root ?
Tu fais ce qui est expliqué dans mon commentaire à 22h01, et pour comprendre ce que j'ai écrit, tu dois simplement traduire "root" par "noeud"
en admettant que ta root contienne:
value : entier
left : root
right : rootbah je comprends pas pk j'ai besoin juste de la class noeud
class Noeud:
def __init__(self, cle):
self._cle = cle
class Arbre:
def __init__(self, racine):
self.racine = Noeud
self.gau = None
self.dro = Nonedans la classe arbre, j'ai le left et right donc on en a besoin non ?
Si tu continues à vouloir utiliser des classes pour ce genre de problèmes en python tu vas juste te casser le cerveau, tu fais de la POO quand tu veux utiliser des modèles de calculs récurrents au sein d'une application pour alléger ton code, pas pour résoudre des problèmes de logiques courts
La solution intelligente c'est d'utiliser un dict tout simplement
et c quoi le code du coup ?
En gros je veux juste faire l'exo :
class Noeud:
def __init__(self, cle):
self._cle = cle
class Arbre:
def __init__(self, racine):
self.racine = Noeud
self.gau = None
self.dro = None
en continuant ce code là que j'ai fais
et je comprends pas pk tlm me sort le "root"
Le 19 décembre 2021 à 22:09:09 :
Le 19 décembre 2021 à 22:07:16 :
Le 19 décembre 2021 à 22:06:28 :
Le 19 décembre 2021 à 22:05:26 :
Le 19 décembre 2021 à 22:04:59 :
il te faut pas de classe arbre.T'as juste besoin d'une classe noeud.
et du coup ton root c'est quoi par rapport à mon truc ?
c'est un noeud
donc je mets noeud à la place de root ?
Tu fais ce qui est expliqué dans mon commentaire à 22h01, et pour comprendre ce que j'ai écrit, tu dois simplement traduire "root" par "noeud"
en admettant que ta root contienne:
value : entier
left : root
right : root
bah je comprends pas pk j'ai besoin juste de la class noeud
class Noeud:
def __init__(self, cle):
self._cle = cle
class Arbre:
def __init__(self, racine):
self.racine = Noeud
self.gau = None
self.dro = None
dans la classe arbre, j'ai le left et right donc on en a besoin non ?
Le 19 décembre 2021 à 22:06:28 :
Le 19 décembre 2021 à 22:05:26 :
Le 19 décembre 2021 à 22:04:59 :
il te faut pas de classe arbre.T'as juste besoin d'une classe noeud.
et du coup ton root c'est quoi par rapport à mon truc ?
c'est un noeud
donc je mets noeud à la place de root ?
Le 19 décembre 2021 à 22:04:59 :
il te faut pas de classe arbre.T'as juste besoin d'une classe noeud.
et du coup ton root c'est quoi par rapport à mon truc ?
Le 19 décembre 2021 à 22:01:49 :
<code>
def exist (root, value):
if root is none:
return false
if root.value == value:
return true
if root.value < value:
return exist(root.right, value)
return exist(root.left, value)
</code>en admettant que ta root contienne:
value : entier
left : root
right : root
mais quand je teste mon code j'appelle la fonction mais entre parenthese, je mets quoi par exemple
attendez parce que j'ai déjà crée un truc avant :
class Noeud:
def __init__(self, cle):
self._cle = cle
class Arbre:
def __init__(self, racine):
self.racine = Noeud
self.gau = None
self.dro = None
vous pouvez reformuler vos codes avec mes données svp ?
Le 19 décembre 2021 à 21:59:53 :
En gros tu fais un boolean, tu commences par verifier si arbre nul return false
Si fils gauche est null et fils droit null et valeur de la clef = valeur tu return true
Sinon tu rappel la fonction avec (fils gauche) ou(operateur) (fils droit)
j'y arrive pas
Le 19 décembre 2021 à 21:57:35 :
def arbre_insertion(self,y) : ### Exemple de méthode qui insère y (y est un objet de type arbre binaire) dans un arbre binaire de recherche existant ###
x = self
while self!=None :
x = self
if y.valeur < x.valeur:
self = x.enfant_gauche
else:
self = x.enfant_droit
if y.valeur < x.valeur:
x.insert_gauche(y.valeur)
else:
x.insert_droit(y.valeur)un morceau d'un code que j'ai fait l'an dernier
att je t'envoie un truc en MP
Le 19 décembre 2021 à 21:56:44 :
Pour savoir si y a une clef tu as qu’a parcourir l’arbre avec condition d’egalite
tu sais comment faire ?
Le 19 décembre 2021 à 21:56:45 :
je fais du python au taff depuis 3 ans et en vrai j'ai pas d'idée là, tu dois rendre ça quand?
avant minuit