Messages de GarfieldPN

https://image.noelshack.com/fichiers/2019/10/7/1552216445-ayaa.png

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 : 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 ? :(

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 :(

up :-(
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à

class Noeud:
def __init__(self, cle):
self._cle = cle

et après je mets quoi ,? :( pour faire l'exo

bordel je comprends rien :-(

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 : 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 ? :(

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"

chui perdu :(

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 ? :(

ça marche pas vos codes :(

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 :-(