扫码加入训练营

牢记核心词

学习得礼盒

计算机考研:数据结构常用算法精析(3)

2013-12-10 15:46:58来源:新东方在线编辑

  中缀表达式转化成后缀表达式算法

  void trans-post(char E[n] ,char B[n]) //中、后缀表达式转换//

  { //E[n]是中缀表达式、B[n]是后缀表达式存储的空间

  int i=0,j=0; char x; stype S;

  Clearstack(S); Push(S,‘#’);//‘#’入栈//

  do {

  x=E[i++] ; //扫描当前表达式分量//

  if (x=‘#’) //到了中缀表达式最后了

  while(!Emptystack(S)) //全部退栈,#和#是优先级最低的,

  B[j++]==pop(S); //所以当前栈的所有运算都要规约

  //输出栈顶运算符,并退栈直到遇见栈底的开始放进去的那个#//

  else if (isdigit(x))

  B[j++]=x; //操作数直接输出//

  else if (x=‘)’) //遇到)那么就一定要找到(

  {

  while (Getstop(S)!=‘(’)

  B[j++]=pop(S); //输出栈顶,并退栈//

  pop(S); //退掉‘(’//

  }

  else //x为运算符//

  {

  while (precede(Getstop(S), x)) //栈顶( q1)与x比较//

  B[j++]=pop(S); // q1 >=x时,输出栈顶符并退栈//

  Push(S,x); // q1 < x时x进栈//

  }

  } while (x!=’#’);

  B[j]=’#’;

  } //置表达式结束符//

考研公开课小程序

本文关键字: 计算机 考研 数据结构

考研英语核心词汇营

背词+听课+练习+督学,学习得礼盒

更多资料
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料