Besoin d'aide / de pistes pour un projet
Moreo
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis actuellement sur un projet scolaire où je dois créer une fonction qui affiche ( via turtle ) un arbre binaire créé en POO et rentré au préalable en paramètre. Ça fait plusieurs heures qu'on est dessus avec des camarades mais on ne parvient toujours pas à trouver un moyen d'agencer les différents noeuds comme ils devraient être. Si quelqu'un peut aider ce serait adorable, merci.
Je suis actuellement sur un projet scolaire où je dois créer une fonction qui affiche ( via turtle ) un arbre binaire créé en POO et rentré au préalable en paramètre. Ça fait plusieurs heures qu'on est dessus avec des camarades mais on ne parvient toujours pas à trouver un moyen d'agencer les différents noeuds comme ils devraient être. Si quelqu'un peut aider ce serait adorable, merci.
from turtle import *
from collections import deque
class Arbre:
def __init__(self,value,left=None,right=None):
self.value = value
self.left = left
self.right = right
def FaireArbre(self,value,gauche,droit):
return Arbre(value,gauche,droit)
def EstFeuille(self):
return self.left == None and self.right == None
def EstArbreVide(self):
if self == None:
return True
return False
def Hauteur(self):
if self.EstArbreVide() :
return -1
elif self.estFeuille() :
return 0
elif self.left == None:
return 1 + self.right.Hauteur()
elif self.right == None:
return 1 + self.left.Hauteur()
else :
return 1 + max(self.left.Hauteur(),self.right.Hauteur())
def ParcoursSuffixe(arbre):
if arbre!= None:
ParcoursSuffixe(arbre.left)
ParcoursSuffixe(arbre.right)
CercleNombre(25, arbre.value)
forward(50)
def Afficher(arbre):
ParcoursSuffixe(arbre)
exitonclick()
def CercleNombre(radius, val):
pendown()
circle(radius)
penup()
left(180)
forward(radius/3.571428)
right(90)
forward(radius/6.25)
pendown()
write(val, font=("Times New Roman", radius))
penup()
left(180)
forward(radius/6.25)
left(90)
forward(radius/3.571428)
arbre=Arbre(5,Arbre(3,Arbre(1),Arbre(2)),Arbre(12,Arbre(7),Arbre(11)))
Configuration: Windows / Opera 73.0.3856.415
A voir également:
- Besoin d'aide / de pistes pour un projet
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Musique projet x ✓ - Forum Musique / Radio / Clip
- Comment projeter une image sur un mur - Forum TV & Vidéo
- Différence entre pmo et chef de projet ✓ - Forum Programmation
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
ne n'est pas un projet facile pour des débutants.
que faut-il ajouter pour que les nœuds soient bien agencés?
ne n'est pas un projet facile pour des débutants.
que faut-il ajouter pour que les nœuds soient bien agencés?