后缀表达式求值的算法及代码 #include<stdlib.h> #include<stdio.h> struct node // 栈结构声明 { int data; // 数据域 struct node *next; // 指针域 };typedef struct node stacklist; // 链表类型 typedef stacklist *link; // 链表指针类型 link operand=NULL; // 操作数栈指针 link push(link ...
1if(str[i]>='0'&&str[i]<='9')2{3num.push((double)(str[i]-48));4}5else6{7switch(str[i])8{9case'+':10a=num.top();11num.pop();12num.top()+=a;13break;14case'-':15b=num.top();16num.pop();17num.top()=num.top()-b;18break;19case'*':20c=num.top();21num.po...
运算符位于操作数之前。 比如:(3+2)*6-5 对应前缀表达式就是:- * + 3 2 6 5 . 思路分析 计算机从右至左扫描前缀表达式,依次将数字入栈。当遇到运算符,弹出栈顶和次顶两个数进行运算,运算结果再次入栈,遇到下一个运算符,又弹出栈顶和次顶两个数进行运算,运算结果再次入栈,依次类推…最终得到运算结果。
3.后缀表达式求值 从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素和栈顶元素),并将结果入栈 重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果 代码实现 publicclassMain{ ...
c语言实现中缀表达式转后缀表达式并求得计算结果,用顺序栈结构。当输入者输入错误信息的时候需要报错,并说明错误的种类。
系统标签: 表达式 后缀 算法 代码 操作数 stacklist #include#includestructnode//栈结构声明{intdata;//数据域structnode*next;//指针域};typedefstructnodestacklist;//链表类型typedefstacklist*link;//链表指针类型linkoperand=NULL;//操作数栈指针linkpush(linkstack,intvalue)//进栈{linknewnode;//新结点指针...