Files
to-hen/misc/trees.py
Kierán Meinhardt afd306ad06 feat: misc
2020-10-18 08:10:50 +02:00

36 lines
852 B
Python

def infix(tree):
if type(tree) == int:
return str(tree)
elif len(tree) == 3:
t1, op, t2 = tree
return "({} {} {})".format(infix(t1), op, infix(t2))
else:
raise ValueError("Malformed expression tree.")
def prefix(tree):
if type(tree) == int:
return str(tree)
elif len(tree) == 3:
t1, op, t2 = tree
return "({} {} {})".format(op, prefix(t1), prefix(t2))
else:
raise ValueError("Malformed expression tree.")
def postfix(tree):
if type(tree) == int:
return str(tree)
elif len(tree) == 3:
t1, op, t2 = tree
return "({} {} {})".format(postfix(t1), postfix(t2), op)
else:
raise ValueError("Malformed expression tree.")
example = ((2, "+", 3), "+", 4)
print(infix(example))
print(prefix(example))
print(postfix(example))