关于中缀表达转后缀表达一题我的做法及思想

2016-02-19 13:15 20 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享关于中缀表达转后缀表达一题我的做法及思想,希望可以对大家能有小小的帮助。

【 tulaoshi.com - 编程语言 】

今天做了一题的题目是这样的:假设表达式由单子母变量和双目四则运算算法构成。试写一算法,将以通常书写形式且书写正确的表达式转换为逆波兰式。
  下面是我做这题的思想以及具体程序,不知道大家觉得这样做好不好,我是用递归做的./*思想:
  1.第一个字符肯定先放到新数组.
  2.假如碰到'*',或者'/'的话就先把这个符号后面的那个字符放入新数组,然后再将符号压进去.
  3.假如碰到'+','-'的话,假如下一个符号的优先级和它们一样就用同上的方法,假如后面符号的优先级比它们
  高的话就用for循环来查找下一个与它们优先级一样的符号.假如查到的话在完成后面的符号全都放入新数组后就把这个符号放入新数组,然后再执行后面的递归.假如前面没查到相同优先级符号的话就把后面的符号都放入新数组后再把这个符号放进去.做这一步中因为牵涉到后面'*','/'符号都放入后要回到原来的位置,所以就用了个yes变量来判定是否碰到这种要返回的情况,假如yes=1,就表示有这种情况,有些地方需要非凡判定.
  4.假如要再加入括号的话我觉得可以再用一个类似yes类型的变量就可以完成.
  */
  #define N 80
  int i=0,yes=0;/*i是新数组的下标指示,yes变量用来判定'+','-'后面假如有'*','/'的情况*/
  void Input(char *x);/*输入表达式*/
  void Output(char *x);/*输出逆波兰*/
  int Fun(char *x,char *y,int n);/*递归函数*/
  void main(void)
  {
   char x[N],y[N];
   Input(x);
   Fun(x,y,1);
   Output(y);
  }
  int Fun(char *x,char *y,int n)/*递归函数*/
  {int j;
   if(x[n]=='

来源:http://www.tulaoshi.com/n/20160219/1603563.html

延伸阅读
摄影的记录和表达   你在桌子上看到一个戒指。 你给这枚戒指拍了张照片,这个过程就是摄影最基本的功能之一:纪录。通过这张照片他人可以获得戒指这个物体的细节,但受图片显示范围的限制,人们无法知道有关这个戒指的其他故事。 你移开戒指附近的无关物体,把一张婚宴请柬衬在戒指下再拍一张照片。人们会从这张图片里...
上个星期新配了一副眼镜,取眼镜的时候,因为对眼镜店赠送的眼镜盒的样式不满意,我就让店员多拿了几个来挑,可惜他们提供的样式太少,没有我喜欢的样子,无奈最后随便拿了一个。仔细看看他们给赠送的眼镜盒,结合前一段时间观看阿辛老师的网页设计视频,发现了一个设计上值得注意的问题,那就是:一定要弄清楚视觉表达上的重点。就拿那个眼镜...
标签: Web开发
这是yyyy-mm-dd hh:mm:ss 的  /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/ ;  这是 yyyy-mm-ddde 的 /^(\d{4})\-(\d{2})\-(\d{2})$/  function validateCNDate( strValue ) { var objRegExp = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/ if(!...
表达出内心最重要 我所理解的摄影美学   连续谈了两次摄影美学的问题,感谢很多影友的抬爱,既然还是有一部分朋友喜欢这些东西,今天我系统的来谈谈,我对摄影美学的理解。当然,还是要说这都是一家之言,仅供有兴趣的朋友参考交流而已。分享的东西都与职业摄影师无关,也与商业无关,纯碎艺术感性领域的探讨交流。 被物化的...

经验教程

445

收藏

16
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部