Skip to content

Instantly share code, notes, and snippets.

@d3v-null
Last active May 16, 2017 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d3v-null/87b735dcbefcdda51d0a2689ca362612 to your computer and use it in GitHub Desktop.
Save d3v-null/87b735dcbefcdda51d0a2689ca362612 to your computer and use it in GitHub Desktop.
input[ 0 ] = '2'
st = [ ]
t = { 'value': '2' }
input[ 1 ] = '+'
st = [
{ 'value': '2' } ]
t = { 'value': '+' }
input[ 2 ] = '('
st = [
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '(' }
input[ 3 ] = '3'
st = [
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '3' }
input[ 4 ] = '*'
st = [
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '*' }
input[ 5 ] = '('
st = [
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '(' }
input[ 6 ] = '2'
st = [
{ 'value': '(' },
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '2' }
input[ 7 ] = '+'
st = [
{ 'value': '2' },
{ 'value': '(' },
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '+' }
input[ 8 ] = '2'
st = [
{ 'value': '+' },
{ 'value': '2' },
{ 'value': '(' },
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '2' }
input[ 9 ] = ')'
st = [
{ 'value': '2' },
{ 'value': '+' },
{ 'value': '2' },
{ 'value': '(' },
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}
input[ 10 ] = ')'
st = [
{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }},
{ 'value': '*' },
{ 'value': '3' },
{ 'value': '(' },
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}}
input[ 11 ] = '+'
st = [
{ 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}},
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '+' }
input[ 12 ] = '5'
st = [
{ 'value': '+' },
{ 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}},
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '5' }
finishing off stack
st = [
{ 'value': '5' },
{ 'value': '+' },
{ 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}},
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '+' , 'left': { 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}}, 'right'{ 'value': '5' }}
st = [
{ 'value': '+' , 'left': { 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}}, 'right'{ 'value': '5' }},
{ 'value': '+' },
{ 'value': '2' } ]
t = { 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '+' , 'left': { 'value': '*' , 'left': { 'value': '3' }, 'right'{ 'value': '+' , 'left': { 'value': '2' }, 'right'{ 'value': '2' }}}, 'right'{ 'value': '5' }}}
Original input: 2+(3*(2+2))+5
Input in infix notation: 2+3*2+2+5. Answer: 2 + 3 * 2 + 2 + 5
Input in prefix notation: +2+*3+225. Answer: + 2 + * 3 + 2 2 5
Input in postfix notation: 2322+*5++. Answer: 2 3 2 2 + * 5 + +
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment