mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-07 10:50:36 +00:00
131 lines
3.8 KiB
Python
131 lines
3.8 KiB
Python
Genealogie = [
|
|
["Henri IV", 1553, 1610, "1589-1610", [1]],
|
|
["Louis XIII", 1601, 1643, "1610-1643", [2, 3]],
|
|
["Louis XIV", 1638, 1715, "1643-1715", [4]],
|
|
["Philippe Ier, duc d'Orleans", 1640, 1701, "", [15]],
|
|
["Louis le Grand Dauphin", 1661, 1711, "", [5, 6]],
|
|
["Louis, duc de Bourgogne", 1682, 1712, "", [7]],
|
|
["Philippe V, roi d'Espagne", 1683, 1746, "", []],
|
|
["Louis XV", 1710, 1774, "1715-1774", [8]],
|
|
["Louis, Dauphin", 1729, 1765, "", [9, 10, 11]],
|
|
["Louis XVI", 1754, 1793, "1754-1793", [13]],
|
|
["Louis XVIII", 1755, 1824, "1815-1824", []],
|
|
["Charles X", 1756, 1832, "1824-1830", []],
|
|
['Louis-Philippe-Joseph "Philippe Egalite"', 1747, 1793, "", [14]],
|
|
["Louis XVII", 1785, 1795, "", []],
|
|
["Louis-Philippe Ier, roi des Français", 1773, 1850, "", []],
|
|
["Philippe II", 1674, 1723, "", [16]],
|
|
["Louis, duc d'Orleans", 1703, 1752, "", [17]],
|
|
["Louis-Philippe Ier, duc d'Orleans", 1725, 1785, "", [12]],
|
|
]
|
|
|
|
|
|
def creer_arbre():
|
|
return ()
|
|
|
|
|
|
def est_vide(arbre):
|
|
return arbre == () or arbre is None
|
|
|
|
|
|
def rechercher(arbre, valeur):
|
|
if not (est_vide(arbre)):
|
|
racine, enfants = arbre
|
|
if racine == valeur:
|
|
return arbre
|
|
resultat = creer_arbre()
|
|
for ss_arbre in enfants:
|
|
resultat = rechercher(ss_arbre, valeur)
|
|
if not (est_vide(resultat)):
|
|
break
|
|
return resultat
|
|
return arbre
|
|
|
|
|
|
def ajouter_enfant(arbre, enfant, cle_parent):
|
|
if est_vide(arbre):
|
|
return enfant
|
|
return arbre.insert(cle_parent + 1, enfant)
|
|
|
|
|
|
Bourbons = [
|
|
["Nom", "naissance", "mort", "règne"],
|
|
["Henri IV", 1553, 1610, "1589-1610"],
|
|
["Louis XIII", 1601, 1643, "1610-1643"],
|
|
["Louis XIV", 1638, 1715, "1643-1715"],
|
|
["Philippe, duc d'Orleans", 1640, 1701, ""],
|
|
["Louis le Grand Dauphin", 1661, 1711, ""],
|
|
["Louis, duc de Bourgogne", 1682, 1712, ""],
|
|
["Philippe V, roi d'Espagne", 1683, 1746],
|
|
["Louis XV", 1710, 1774, "1715-1774"],
|
|
["Louis, Dauphin", 1729, 1765, ""],
|
|
["Louis XVI", 1754, 1793, "1765-1792"],
|
|
["Louis XVIII", 1755, 1824, "1814-1824"],
|
|
["Charles X", 1756, 1832, "1824-1830"],
|
|
['Louis-Philippe-Joseph "Philippe Egalite"', 1747, 1793, ""],
|
|
["Louis XVII", 1785, 1795, ""],
|
|
["Louis Philippe Ier", 1773, 1850, "1830-1848"],
|
|
]
|
|
|
|
Genealogie = (
|
|
1,
|
|
[
|
|
(
|
|
2,
|
|
[
|
|
(
|
|
3,
|
|
[
|
|
(
|
|
5,
|
|
[
|
|
(6, [(8, [(9, [(10, [14]), (11, []), (12, [])])])]),
|
|
(7, []),
|
|
],
|
|
)
|
|
],
|
|
),
|
|
(4, []),
|
|
],
|
|
)
|
|
],
|
|
)
|
|
print("ENUMERATION :")
|
|
for rg, bourbon in enumerate(Bourbons):
|
|
print(rg, bourbon[0])
|
|
print()
|
|
print("RECHERCHE :")
|
|
print(rechercher(Genealogie, 8))
|
|
|
|
|
|
class Arbre(object):
|
|
def __init__(self, racine=None, ss_arbres=[]) -> None:
|
|
self.racine = racine
|
|
self.ss_arbres = ss_arbres
|
|
|
|
def est_vide(self):
|
|
return self.racine == None
|
|
|
|
def rechercher(self, valeur):
|
|
if not (self.est_vide()):
|
|
if self.racine == valeur:
|
|
return self
|
|
resultat = Arbre()
|
|
for ss_arbre in self.ss_arbres:
|
|
ss_arbre = Arbre(racine=None, ss_arbres=ss_arbre)
|
|
resultat = ss_arbre.rechercher(valeur)
|
|
if not (resultat == None):
|
|
break
|
|
return resultat
|
|
return Arbre()
|
|
|
|
def ajouter(self,elt):
|
|
if self.est_vide():
|
|
return Arbre(racine=elt)
|
|
else:
|
|
return Arbre(elt,self)
|
|
def enlever(self,elt):
|
|
pass
|
|
def display(self):
|
|
pass
|