c语言如何实现后缀表达式求值

更新时间:02-03 教程 由 孤己i 分享

答 后缀表达式也叫逆波兰表达式,是一种不含括号的运算符表达式。在计算机中,后缀表达式的求值比中缀表达式更方便,因为后缀表达式不需要括号来改变优先级,而且不需要考虑运算符的优先级和结合性。

本文将介绍如何使用c语言实现后缀表达式求值。

1. 后缀表达式求值的算法

后缀表达式求值的算法是使用栈来实现的,具体步骤如下

1) 从左到右扫描后缀表达式。

2) 如果遇到数字,就将数字入栈。

3) 如果遇到运算符,就从栈中取出相应的操作数,进行运算,然后将结果入栈。

4) ,栈中只剩下一个元素,即为后缀表达式的值。

2. c语言实现后缀表达式求值的代码

下面是使用c语言实现后缀表达式求值的代码

```cludecludeclude

e MX_STCK_SIZE 100

typedef struct {t data[MX_STCK_SIZE];t top;

} Stack;

if (s->top >= MX_STCK_SIZE) {tf");

exit(1);

}

s->data[++s->top] = x;

t pop(Stack s)

if (s->top< 0) {tfderflow");

exit(1);

} s->data[s->top--];

t is_operator(char ch)

{ ch == '+' || ch == '-' || ch == '' || ch == '/';

ttt op2)

switch (op) { op1 + op2; op1 - op2; op1 op2; op1 / op2; 0;

}

Stack s;

s.top = -1;

t[i] != '\0'; i++) {[i])) {[i] - '0');[i])) {t op2 = pop(&s);t op1 = pop(&s);t[i], op1, op2);

push(&s, result);

}

}

pop(&s);

tain()

{[] = "234+";t);tf", result); 0;

3. 后缀表达式求值的实例

以后缀表达式"23+4"为例,展示后缀表达式求值的过程

1) 读取"2",将2入栈。

2) 读取"3",将3入栈。

3) 读取"+",从栈中取出3和2,计算2 + 3 = 5,将5入栈。

4) 读取"4",将4入栈。

5) 读取"",从栈中取出4和5,计算5 4 = 20,将20入栈。

6) ,栈中只剩下一个元素20,即为后缀表达式的值。

以上就是使用c语言实现后缀表达式求值的介绍,希望对大家有所帮助。

声明:关于《c语言如何实现后缀表达式求值》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2140183.html