tried to add dijkstra implementation

This commit is contained in:
2025-02-09 12:59:17 +01:00
parent 55cfb57800
commit d4645ec647
43 changed files with 116 additions and 42 deletions

46
tp6_enirely/tp6/npi.py Normal file
View File

@@ -0,0 +1,46 @@
def evaluer_npi(expression):
"""fais la notation polonaise inversée (NPI) d'une expression arithmétique
Args:
expression (_type_): String contenant l'expression arithmétique
Returns:
_type_: Integer contenant le resultat.
"""
pile = []
elements = expression.split()
for element in elements:
if element.isdigit():
pile.append(int(element))
else:
droite = pile.pop()
gauche = pile.pop()
if element == '+':
resultat = gauche + droite
elif element == '-':
resultat = gauche - droite
elif element == '*':
resultat = gauche * droite
elif element == '/':
resultat = gauche / droite
else:
raise ValueError(f"Opérateur inconnu: {element}")
pile.append(resultat)
if len(pile) != 1:
raise ValueError("L'expression est mal formée.")
return pile.pop()
expression = "100 60 / 60 + 90 *"
resultat = evaluer_npi(expression)
print(f"Le résultat de l'expression '{expression}' est: {resultat}")