微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postfix表达式的缀不返回

如何解决Postfix表达式的缀不返回

此后缀表达式转换器的前缀不返回任何表达式,运行代码时没有错误,但是在我输入表达式后,它应该返回字符串 postfix ,但是没有。 知道函数ifOprnd(),prcd(),topStack(),push(),is_emptyy()都可以正常工作

string
infinxToPostfix (string ex)
{
  char topsymb;
  string postfix= "";
  int i;
  char symb = ex[i];
 
  struct stack e;
  initStack (&e);
  
  for(i = 0; i<symb; i++)
  {
  while (symb != '\0')
    {
      if(ifOprnd(symb))
        postfix+= symb;
      else
      {
        while (!is_emptyy(&e) && prcd(topStack(&e),symb))
        {    
            topsymb=pop(&e);
            postfix+= topsymb;
        }
        push(&e,symb);
      }
    }
  }
  while(!is_emptyy(&e))
  {
    topsymb=pop(&e);
    postfix+= topsymb;
  }
  return postfix;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。