我必须将非全括号序列从中缀转换为后缀。这也需要使用堆栈。有一个堆栈供操作员存储。我需要确定运算符的优先级,以确保将正确的运算符打印在转换后的后缀序列中的正确位置。这是伪代码:
do if(下一个输入是左括号)读取左括号并将其压入堆栈。else if(下一个输入是数字或其他操作数)读取操作数并将其写入输出。else if (下一个输入是操作符号之一) { 从堆栈弹出和打印操作,直到发生以下三种情况之一:(1) 堆栈变为空,(2) 堆栈上的下一个符号是左括号,或(3) 堆栈上的下一个符号是一个优先级低于下一个输入符号的操作。当其中一种情况发生时,停止弹出,读取下一个输入符号,并将该符号压入堆栈。 } else { 读取并丢弃下一个输入符号(应该是右括号)。从堆栈弹出和打印操作,直到堆栈上的下一个符号是左括号。(如果没有遇到左括号,则打印一条错误消息,指出括号不平衡并停止。)最后,弹出并丢弃左括号。} while(还有更多的表达式要阅读);
粗体字对我来说是令人困惑的部分。有没有人对此方法有建议?如果需要更多信息,请告诉我......