熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

第二部分 棧、隊列和數組[5]

2013-11-15 15:47:49  來源: 數據結構 

    表達式求值

  OperandTypeEvaluateExpression(){
  //設OPTR和OPND分別為運算符棧和運算數棧//OP為運算符集合
  InitStack(OPTR);Push(OPTR#);
  initStack(OPND);c=getchar();
  while(c!=#||GetTop(OPTR)!=#){
  if(!In(cOP)){
  Push((OPNDc);c=getchar();
  }//不是運算符則進棧
  else
  switch(precede(GetTop(OPTR)c){
  case<://棧頂元素優先權低
  Push(OPTRc);c=getchar();
  break;
  case=://脫括號並接收下一字符
  Pop(OPTRx);c=getchar();
  break;
  case>://退棧並將運算結果入棧
  Pop(OPTRtheta);
  Pop(OPNDb);Pop(OPNDa);
  Push(OPNDOperate(athetab));
  break;
  }//switch
  }//while
  returnGetTop(OPND);
  }//EvaluateExpression

    返回《數據結構》考研復習精編

[]  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23972.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.