这个代码不能实现中缀表达式转后缀表达式,里面有什么bug
时间: 2024-04-07 17:28:15 浏览: 121
中缀表达式转化为后缀表达式
你说的没错,这段代码确实存在一些 bug。
1. 第 42 行的 `while` 循环条件判断有误,应该改为 `while (prior(peek(s)) >= prior(num[i]) && !isempty(s))`,即栈不为空时才进行比较。
2. 第 18 行的 `return ERROR;` 在这里应该返回一个字符类型的错误标记,而不是整型的 `ERROR`。
3. 第 31 行的 `delete[]s.base;` 应该改为 `delete[] s.base;`,即 `delete[]` 后应该有一个空格。
4. 第 27 行的 `return OK;` 在这里返回的是整型的 `OK`,应该改为返回字符类型的 `x`。
5. 第 30 行的 `s.stacksize = MAXSIZE;` 应该改为 `s.stacksize = 0;`。
6. 第 35 行的 `void printfstack(stack& s)` 应该改为 `void printstack(stack& s)`。
经过以上修改,代码应该可以正确运行了。
阅读全文