You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.4 KiB
72 lines
1.4 KiB
4 weeks ago
|
from File import File_chaine as File
|
||
|
from Pile import Pile_chaine as Pile
|
||
|
|
||
|
def creer_arbre(val):
|
||
|
""" Renvoie un nouvel arbre dont la racine est val . """
|
||
|
return [val, None, None]
|
||
|
|
||
|
def est_vide(a):
|
||
|
""" Indique si l ' arbre a est vide ou non. """
|
||
|
return a == None
|
||
|
|
||
|
def racine(a):
|
||
|
""" Renvoie la racine de l ' arbre non vide a. """
|
||
|
return a [0]
|
||
|
|
||
|
def fils_gauche(a):
|
||
|
""" Renvoie le fils gauche de l ' arbre non vide a. """
|
||
|
return a [1]
|
||
|
|
||
|
def fils_droit(a):
|
||
|
""" Renvoie le fils droit de l ' arbre non vide a. """
|
||
|
return a [1]
|
||
|
|
||
|
def insere_gauche(a, val):
|
||
|
""" Insère la valeur val à la racine du fils gauche de l'arbre non vide a.
|
||
|
L'ancien fils gauche de a devient le fils gauche du nouveau nœud.
|
||
|
Renvoie le sous arbre créé . """
|
||
|
nouvel_arbre =
|
||
|
nouvel_arbre[1] =
|
||
|
. . .. . = nouvel_arbre
|
||
|
return nouvel_arbre
|
||
|
|
||
|
def insere_droit(a, val):
|
||
|
""" Ins è re la valeur val à la racine du fils droit de l ' arbre non vide a.
|
||
|
L ' ancien fils droit de a devient le fils gauche du nouveau nœud.
|
||
|
Renvoie le sous arbre cr éé . """
|
||
|
nouvel_arbre = . . . .. . . . . .. . . . . .
|
||
|
nouvel_arbre[1] = . . .. . . . . . .. . . .
|
||
|
. . .. . = nouvel_arbre
|
||
|
return nouvel_arbre
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
a = Arbre ()
|
||
|
class Expression:
|
||
|
def __init__(self, racine, fils_gauche, fils_droit):
|
||
|
type (racine) = '+' or '*' or int
|
||
|
if type(racine) == int:
|
||
|
fils_gauche = none or a
|
||
|
|
||
|
|
||
|
|