各位大侠能帮帮我的忙???
我现在很急需一个程序,能帮我写一下吗?我要在6月21号就要交这个程序了
程序的题目是:
将任意的表达式改写为后缀式
说明:1、表达式为算术表达式与逻辑表达式;
2、为简单起见,表达式中变量为一个大写英文字母。
例如:在机子中输入a+b
屏幕上显示ab+
我要一个完整的程序,可以直接运行看结果,用C语言写。
程序里面要可以输入算术表达式和逻辑表达式。
如果有哪位帮我写的话,我先谢谢你了, 如果你写的话你能不能把你的程序写点注释的话,我好看你的程序,谢谢了!!!
我现在很急需一个程序,能帮我写一下吗?我要在6月21号就要交这个程序了
程序的题目是:
将任意的表达式改写为后缀式
说明:1、表达式为算术表达式与逻辑表达式;
2、为简单起见,表达式中变量为一个大写英文字母。
例如:在机子中输入a+b
屏幕上显示ab+
我要一个完整的程序,可以直接运行看结果,用C语言写。
程序里面要可以输入算术表达式和逻辑表达式。
如果有哪位帮我写的话,我先谢谢你了, 如果你写的话你能不能把你的程序写点注释的话,我好看你的程序,谢谢了!!!
解决方案 »
- 怎样获得光驱信息,紧急,在线等
- 高分请教获取本地连接状态显示框中发送和接收数据包数量,在线等,急!!!
- 如何把软件做成只能运行10天,并且10天后要有注册码才能继续使用?
- VC初学者问--关于基于对话框的应用程序实现问题!
- 再问ADO
- 中秋祝福+感谢+散分!!!
- 如何才能在对话框内指定的位置显示位图?
- 关于Refill方法,急!在线等待!
- 如何让EDIT控件只能输入数字??? 又如何让它不接受输入?但又能显示?
- 多线程的调度问题
- 怎样在资源中载入位图
- 我用ShellExecute(NULL,"open","##",NULL, NULL, SW_SHOWNORMAL)函数调用了netmeeting软件!现在怎样把它嵌入一个已经分割好的窗口中啊
从原表达式求得后缀式的规律为:
设立操作数栈;
设表达式的结束符为“#”,予设运算符栈的栈底为“#”
若当前字符是操作数,则直接发送给后缀式;
若当前运算符的优先数高于栈顶运算符,则进栈;
否则,退出栈顶运算符发送给后缀式;
“(”对它之前后的运算符起隔离作用,“)”可视为自相应左括弧开始的表达式的结束符。
算法描述如下:
void transform(char suffix[], char exp[] ) {
// 从合法的表达式字符串exp求得其相应的后缀式
InitStack(S); Push(S, '#');
p = exp; ch = *p;
while (!StackEmpty(S)) {
if (!IN(ch, OP)) Pass( Suffix, ch); // 直接发送给后缀式
else {
switch (ch) {
case '(': Push(S, ch); break;
case ')': {
Pop(S, c);
while (c!= '(')
{Pass( Suffix, c); Pop(S, c) }
break; }
defult : {
while(!Gettop(S, c) && ( precede(c,ch)))
{ Pass( Suffix, c); Pop(S, c); }
if ( ch!= '#') Push( S, ch);
break;
} // defult
} // switch
} // else
if ( ch!= '#') { p++; ch = *p; }
} // while
} // CrtExptree
数据结构,Very Easy,不给你搞,丫懒得出奇。