1.0 逆波兰表达式是二叉树的后序遍历
使用栈求值的思路: 如果遇到的是数字,压入栈里面,继续遍历,如果遇到了 运算符号,将计算出的值压入栈里面。代码栈的实现。下一版本实现中缀表达式转后缀表达式。
// 判断是不是数字
bool isNumber(char c)
{
if (c >= '0' && c <= '9')
{
return true;
}
else
{
return false;
}
}
// 判断是不是 符号
bool isMark(char c)
{
if ( c == '+' || c == '-' || c == '*' || c == '/')
{
return true;
}
else
{
return false;
}
}
// 判断是不是 符号
bool isKuoHao(char c)
{
if (c == '(' || c == ')')
{
return true;
}
else
{
return false;
}
}
int main(int argc, char **argv)
{
LinkStack ls;
// 初始化一个栈
initLinkStack(ls);
// 初始化一个 表达式
char* str = "(3+4)×5-6";
// 逆波兰表达式
char* s = "34+5*6-";
int sum = 0;
int c1;
int c2