看了下问题标签没有数据结构的,就随便选了个机器学习的。。。
文中说使用中序遍历可找出原表达式,我用中序遍历得到:4 * 7 - 2 + 5
然后文中说想进行后序遍历使用栈来处理表达式更容易,然后我通过后序遍历得到: 4 7 2 - * 5 +
然后说每遇到一个操作符,就可以从栈顶弹出两个元素,将计算结果返回到栈中没理解什么意思,请指教!
看了下问题标签没有数据结构的,就随便选了个机器学习的。。。
文中说使用中序遍历可找出原表达式,我用中序遍历得到:4 * 7 - 2 + 5
然后文中说想进行后序遍历使用栈来处理表达式更容易,然后我通过后序遍历得到: 4 7 2 - * 5 +
然后说每遇到一个操作符,就可以从栈顶弹出两个元素,将计算结果返回到栈中没理解什么意思,请指教!
图里已经说了,处理这个表达式并不容戏,需要考虑优先级,意思就是需要你自己考虑加括号,建议你多用脑子想想再问问题。
后序遍历遇到操作符弹出元素并运算是在压栈的同时进行的,不是你把整个遍历结果求出来再处理。
leetcode是已经学号算法准备参加面试的人用来练手的,想你这样很明显啥都不会的人就建议你好好看书,算法导论讲的很多很清楚。