Encoder un arbre en Python

Un arbre est un ensemble de noeuds avec des branches les reliants avec la contrainte que si l'on parcours les arrêtes sans faire demi tour, il est impossible de revenir à son point de départ. Les noeuds portents une étiquettes. Mathématiquement on peut le modéliser par inductition : un arbre est ou bien un entier avec un nom ou bien un noeud qui a une liste d'enfants. Chacun des enfants est un arbre.
Pour que cela soit facile à manipuler, on utiliser les classes en Python. Une classe est un type d'objet comme "str" ou "int" que l'on définit nous même pour satisfaire nos propre besoins.
Le but de cet exerice estde définir une classe arbre de manière "inductive".


Créer un classe Arbre ayant les propriétés suivantes. Chaque arbre a
  • un nom et une etiquette que l'on définit à la création.
  • une liste d'enfants de type arbre
  • une fonction qui permet de lui ajouter un enfant
  • une fonction qui permet de vérifier qu'il n'y a pas de cycle dans l'arbre
  • une fonction qui permet de savoir si c'est une feuille
  • une fonction qui permet de savoir si c'est la racine


Type fonction

Il y a deux manières de définir une fonction en python. La commande lambda et la commande def

f=lambda x:2*x
print (f(10))
print (f("plop"))

def  ma_fonction(n):
    for entier in range(n):
        print (entier)
    return (n**2)

En savoir plus »

Classe

Une classe est un objet personnalisé. Il peut contenir d'autres objets ou fonctions.

class Fraction:
	def __init__(self, numer=1,denom=1):
		self.denominateur=denom
		self.numerateur=numer
	def check(self):
		return (type(self.denominateur)==type(1)) and (type(self.numerateur)==type(1)) and (self.denominateur!=0)
	    
A=Fraction(1,2)
print (A)
print (A.numerateur)

En savoir plus »