首页 > 编程知识 正文

如何转换为后缀表达式,中缀表达式转后缀表达式题目

时间:2023-05-03 12:59:06 阅读:44318 作者:3652

评估公式:输出http://www.Sina.com/http://www.Sina.com/,直接. http://www.Sina.com /,直接压入堆栈。 (括号是最高优先级,因此不需要进行比较) ) http://www.Sina.sina ) )。 验证其他符号是否已成功堆栈(3358www.Sina.com/,) (意味着括号已结束) )一个接一个弹出堆栈顶部运算符,输出到遇到左括号),但不输出) 3358 www

如果是1.从左到右进行遍历,则推入堆栈(还不能进行这部分的运算),

对于2.运算数,请弹出堆栈顶部运算符并将其输出,以比较新的堆栈顶部运算符。

(低于弹出窗口意味着能够运算前面的部分,因为首先输出的一定是高优先级运算符,以与弹出窗口相同的优先级从左向右进行运算)

如果优先级高于顶级运算符或顶级运算符,或者优先级高于顶级运算符,则在.3.左括号中输入运算符将按顺序调用并输出堆栈中的所有运算符。

如何在后缀中拼写:如果表达式是字符串

创建符号堆栈和字符串队列

遍历各个字符信息

判断为该字符是运算符、括号、数值

运算符

确定当前字符的优先级是否小于或等于堆栈顶部字符的优先级。 在这种情况下,堆栈顶部元素中的左括号(

以下,在字符串队列中弹出并存储符号堆栈的开头内容,并将当前字符存储在符号堆栈中大于将当前字符存储在符号堆栈的括号中

将左括号存储在符号堆栈中右括号将符号堆栈内的运算符依次弹出到字符串队列中,停止堆栈值的弹出直到符号堆栈内发生左括号的弹出,直接进入字符串队列内的数值

直接输出

遍历结束后,判断符号堆栈中是否有元素

# include iostream # include algorithm # include queue # includeset # include stack # include string # include vector # include string OOLcompare(chara,char b ); int优先级(chara; //) 40括号在算术上优先级最高,但在堆栈上的优先级最低,只有其他符号为正常进入堆栈而优先级最低//(优先级最高,-优先级最低//true时a为)/b为-时int prioriority } else { return 2; (//比较优先级,如果a的优先级高于b,则返回优先级(char b,char b ) )返回优先级(b ) a优先级(b ) ); //骑马订表达式--后缀表达式(逆波兰表达式)//返回字符串数组char*change ) chardata[] ) char*hou=(char* ) malloc ) max * sizeof (char ) 堆叠char s; 索引=0; //后缀表达式的长度int length=strlen (数据)//1.判断类型for(intI=0; i length; I ) ) /运算数时,直接输出,if(data[I]='0'data[I]='9' ) { hou[index]=data[i]; 索引; }elseif(data[I]==' () ) )while (! s.empty(s.top )!=' ' () { hou[index]=s.top ); 索引; s.pop (; (} s.pop ); //去掉左括号}elseif(data[I]==' () ) s.push(data[I] ); } else { //表示运算符的优先级小于或等于堆栈顶部元素,退出堆栈顶部元素,//includedata[I]=' ',compare为false while (! s.empty ()! 比较(data(I,s.top ) ) printf ) ) %c%dn ),数据(I ),s.top ),比较(data ) I ),s.top ) hou[index]=s.top (; 索引; s.pop (; }s.push(data[I]; } printf (此时输出内容(-20s ) t参加运算的符号(c(t ) t堆栈的要素个数) d(n )、hou、data[i]、s.size ) ); //输出堆栈中的所有元素while (! s.empty () ) { hou[index]=s.top ); 索引; s.pop (; }返回后; //后缀表达式的计算intmain(intargc,char const *argv[] () /示例2*(9/3-5)4 //结果2963/5-*4chars[max]='2*2* 结果=change (s; printf(%s(n )、result; 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。