!勘误!之前中缀转后缀的一处错误
摘要:
!勘误!之前中缀转后缀的一处错误 之前我们在中缀转后缀的处理过程中对于当操作符为”)”的时候,对操作符栈进行弹栈操作,当操作符栈的top()值为”(”,我们将其从操作符栈中进行弹出,但是并没有终止,而是继续弹栈,这是一个严重的错误。比如对于表达式:4 - ( 3 + 2 ) / ( 3 - 1 ) 我们按照之前的做法得到的结果为: 0.5 但是,正确的结果应该为1.5 具体错误出现在: 我们在当if (op_st.top() == “(”) po_st.pop() 后没有结束while循环,从而导致操作符内所有的操作符都弹栈。 具体的修改方法是在op_st.pop()后面添加一个break;语 阅读全文
posted @ 2013-08-01 00:04 unixfy 阅读(268) 评论(0) 推荐(0) 编辑