Skip to content

Instantly share code, notes, and snippets.

@kmein
Created November 20, 2018 11:42
Show Gist options
  • Save kmein/853ee194ed5052ef93579e38ba2e6af8 to your computer and use it in GitHub Desktop.
Save kmein/853ee194ed5052ef93579e38ba2e6af8 to your computer and use it in GitHub Desktop.
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))
@woody2408
Copy link

❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment