青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

編譯原理實(shí)驗(yàn):后綴式求值(c++)

/* 將中綴表達(dá)式(a+b)轉(zhuǎn)換為后綴表達(dá)式(ab+)的算法思想:  
   ·
當(dāng)讀到數(shù)字直接送至輸出隊(duì)列中  
   ·
當(dāng)讀到運(yùn)算符t時(shí),  
      a.
將棧中所有優(yōu)先級(jí)高于或等于t的運(yùn)算符彈出,送到輸出隊(duì)列中;    
      b.t
進(jìn)棧  
   ·
讀到左括號(hào)時(shí)總是將它壓入棧中  
   ·
讀到右括號(hào)時(shí),將靠近棧頂?shù)牡谝粋€(gè)左括號(hào)上面的運(yùn)算符全部依次彈出,送至輸出隊(duì)列后,再丟棄左括號(hào)。  
  
     
運(yùn)用后綴表達(dá)式進(jìn)行計(jì)算的具體做法:  
   ·
建立一個(gè)棧S  
   ·
從左到右讀后綴表達(dá)式,讀到數(shù)字就將它轉(zhuǎn)換為數(shù)值壓入棧S中,讀到運(yùn)算符則從棧中依次彈出兩個(gè)數(shù)分別到YX,然后以“X   運(yùn)算符   Y”的形式計(jì)算機(jī)出結(jié)果,再壓加棧S  
   ·
如果后綴表達(dá)式未讀完,就重復(fù)上面過程,最后輸出棧頂?shù)臄?shù)值則為結(jié)束 */

#include <iostream>
#include <string>
using namespace std;

char ex[100];//存儲(chǔ)后綴表達(dá)式
char str[100];//
存儲(chǔ)算術(shù)表達(dá)式
char stack[100];//
作為棧使用
char ch;//
當(dāng)前判斷的字符
int i=0;//i
為算術(shù)表達(dá)式str的下標(biāo)
int t;//t
為后綴式ex的下標(biāo)
int top=0;//top
為棧頂
void trans();//
轉(zhuǎn)換函數(shù)
void compute();//
計(jì)算后綴式的值

void trans()//將中綴式轉(zhuǎn)換為后綴式
{
cout<<"
輸入一個(gè)算術(shù)表達(dá)式,以#號(hào)結(jié)束:"<<endl;
while(str[i]!='#')//
中綴式以#號(hào)結(jié)束
{
   i++;//
因?yàn)?span lang="EN-US">i的初值設(shè)為0
   cin>>str[i];
}

//
開始掃描
t=1;
i=1;
ch=str[i];
i++;//i
指向當(dāng)前掃描字符的下一位
while(ch!='#')//
逐個(gè)掃描,直至遇到#號(hào)結(jié)束
{
   switch(ch)
   {
   case'('://
遇到(,進(jìn)棧
    top++;
    stack[top]=ch;
    break;
   case')'://
遇到),將靠近棧頂?shù)牡谝粋€(gè)左括號(hào)上面的運(yùn)算符全部依次彈出,送至后綴式隊(duì)列后,再丟棄左括號(hào)。
    while(stack[top]!='(')
    {
     ex[t]=stack[top];
     top--;
     t++;
    }
    top--;//
丟棄(
    break;
   case'+':
   case'-':
    while(top!=0 && stack[top]!='(')
    {
     ex[t]=stack[top];
     top--;
     t++;
    }
    top++;//
因?yàn)?span lang="EN-US">top的初值為0
    stack[top]=ch;
    break;
   case'*':
   case'/':
    while(stack[top]=='*'|| stack[top]=='/')
   {
    ex[t]=stack[top];
    top--;
    t++;
   }
   top++;
   stack[top]=ch;
   break;
 
   /*
注意!除操作數(shù)外,其它符號(hào)都要用到棧*/
   default:while(ch>='0' && ch<='9')//
遇到操作數(shù)直接送至后綴式隊(duì)列
     {
      ex[t]=ch;
      t++;
      ch=str[i];
      i++;//
此時(shí)i指向操作數(shù)之后的運(yùn)算符的后一位!!
     }
    i--;//
要在操作數(shù)之后,運(yùn)算符之前添加空格符
    ex[t]=' ';//
用空格符隔開
    t++;

   }//switch結(jié)束

   ch=str[i];//仿照default中的,返回添加空格符之前的操作
   i++;
}//
結(jié)束while


while(top!=0)//
仍有運(yùn)算符在棧中
{
   ex[t]=stack[top];
   t++;
   top--;
}
ex[t]=' ';//
不能省,若省掉則無法進(jìn)入compute函數(shù)??

for(int j=1;j<i-1;j++)
   cout<<str[j];
cout<<"
的后綴式為:";
for(j=1;j<t;j++)
cout<<ex[j];

}

void compute()
{
float stack[100];//
作為棧使用
int d;//
用于存放當(dāng)前的計(jì)算結(jié)果
char ch;
int t=1;
int top =0;
ch=ex[t];
t++;

while(ch!=' ')//此空格符為后綴式中的最后一個(gè)字符,與上文中的" ex[t]=' '; "相對(duì)應(yīng)
{
   switch(ch)
   {
   case'+':
    stack[top-1]=stack[top-1]+stack[top];
    top--;
    break;
   case'-':
    stack[top-1]=stack[top-1]-stack[top];
    top--;
    break;
   case'*':
    stack[top-1]=stack[top-1]*stack[top];
    top--;
    break;
   case'/':
    if(stack[top]!=0)
     stack[top-1]=stack[top-1]/stack[top];
    else
    {
     cout<<"\n
除零錯(cuò)誤!"<<endl;
     exit(0);//
異常退出
    }
    top--;//
兩個(gè)操作數(shù)算出一個(gè)結(jié)果存放到棧頂,那兩操作數(shù)便可丟棄,故top-1
    break;
   default:
    d=0;
    while(ch>='0' && ch<='9')
    {
     d=10*d+ch-'0';//
將數(shù)字字符轉(zhuǎn)化為對(duì)應(yīng)的數(shù)值,*10是與大于10的數(shù)值時(shí)要進(jìn)位
     ch=ex[t];
     t++;
    }
    top++;
    stack[top]=d;//
棧頂存放當(dāng)前計(jì)算結(jié)果
 
   }//switch
結(jié)束
   ch=ex[t];//
跳過空格符,掃描下一個(gè)運(yùn)算符或操作數(shù)
   t++;
}
cout<<"\n
計(jì)算結(jié)果為:"<<stack[top]<<endl;
}

void main()
{
trans();
compute();
}

結(jié)果如圖所示:

clip_image001

 

posted on 2010-03-05 16:15 肥仔 閱讀(1359) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 狀態(tài)機(jī) & 自動(dòng)機(jī) & 形式語言

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合精品自拍| 老司机免费视频久久| 欧美在线亚洲在线| 欧美亚洲视频| 久久久午夜电影| 久久夜色精品| 亚洲精品国产欧美| 亚洲图片欧洲图片av| 亚洲欧美国产制服动漫| 久久精品一区四区| 欧美日韩精品一区二区天天拍小说| 欧美日韩大陆在线| 国产亚洲综合在线| 日韩一区二区精品| 久久精品夜色噜噜亚洲aⅴ| 欧美高清视频在线| 亚洲欧美精品中文字幕在线| 裸体一区二区| 国产精品揄拍500视频| 亚洲国产你懂的| 亚洲欧美精品suv| 欧美激情成人在线| 亚洲一区二区在| 欧美777四色影视在线| 国产精品综合不卡av| 最新国产拍偷乱拍精品 | 久久久噜噜噜久久人人看| 欧美二区在线观看| 国产一区二区三区在线观看免费视频| 久久婷婷国产综合精品青草| 亚洲精品一区在线| 午夜视频在线观看一区| 欧美激情精品久久久久久黑人| 一道本一区二区| 美女久久网站| 国产综合婷婷| 亚洲欧美偷拍卡通变态| 亚洲精品国产精品乱码不99按摩| 欧美在线短视频| 国产精品成人一区二区| 亚洲精品一区二区三区四区高清| 欧美一区二区在线看| 99国产精品99久久久久久| 免费亚洲一区| 原创国产精品91| 久久免费视频在线观看| 亚洲欧美www| 国产精品黄色| 香蕉久久夜色精品| 麻豆精品精华液| 久久精品国产欧美亚洲人人爽| 亚洲黄色毛片| 老司机亚洲精品| 精品av久久久久电影| 久久婷婷色综合| 久久精品五月婷婷| 在线日韩视频| 蜜桃久久av一区| 久久精品导航| 一区免费观看视频| 欧美国产日韩一二三区| 麻豆国产精品va在线观看不卡| 狠狠色综合网| 乱人伦精品视频在线观看| 久久激情婷婷| 在线播放日韩| 欧美激情按摩| 欧美日一区二区三区在线观看国产免| 亚洲精品男同| 亚洲人成网站影音先锋播放| 欧美精品v国产精品v日韩精品| 最近中文字幕日韩精品| 亚洲美女电影在线| 欧美无砖砖区免费| 欧美亚洲一区二区在线| 欧美一区二区视频在线| 影院欧美亚洲| 最新国产乱人伦偷精品免费网站 | 亚洲午夜国产一区99re久久 | 亚洲三级毛片| 亚洲国产一区在线| 欧美日韩一区在线观看视频| 亚洲自拍偷拍色片视频| 亚洲欧美国产日韩中文字幕| 国产综合av| 亚洲国产精品成人综合| 老司机亚洲精品| 亚洲一区二区三区视频播放| 国产精品普通话对白| 久久色在线观看| 免费一级欧美片在线观看| 夜色激情一区二区| 亚洲欧美日韩天堂| 亚洲成人自拍视频| 一区二区av在线| 国自产拍偷拍福利精品免费一| 狂野欧美一区| 欧美日韩国产天堂| 久久国产精品网站| 欧美成人午夜免费视在线看片 | 国产综合精品一区| 国产精品久久久久一区二区| 亚洲图色在线| 欧美一区在线直播| 亚洲日本精品国产第一区| 99re这里只有精品6| 国产精品天美传媒入口| 久久躁狠狠躁夜夜爽| 欧美大尺度在线观看| 久久精品亚洲国产奇米99| 欧美黄色免费| 久久―日本道色综合久久| 欧美精品久久一区二区| 久久日韩精品| 国产乱理伦片在线观看夜一区| 欧美福利电影在线观看| 国产精品一区=区| 亚洲精品免费在线播放| 韩国女主播一区二区三区| 99在线热播精品免费| 亚洲国产日韩欧美在线图片| 欧美一区二区黄| 亚洲制服欧美中文字幕中文字幕| 久久亚洲不卡| 久久婷婷麻豆| 国产日产欧美精品| 在线天堂一区av电影| 日韩视频精品在线观看| 久久久久久亚洲精品中文字幕| 亚洲欧美日韩在线播放| 欧美日韩调教| 日韩亚洲精品视频| 亚洲图片在区色| 欧美日韩国产999| 国产午夜亚洲精品不卡| 一本一本久久a久久精品牛牛影视| 亚洲人线精品午夜| 模特精品在线| 91久久精品美女高潮| 91久久精品美女| 欧美aa在线视频| 欧美激情乱人伦| 亚洲精品一二三| 欧美偷拍一区二区| 夜夜嗨av一区二区三区四区| 在线亚洲欧美专区二区| 国内久久精品视频| 久久夜精品va视频免费观看| 久久精品国产第一区二区三区最新章节| 欧美精品不卡| 99伊人成综合| 午夜日韩在线| 激情小说另类小说亚洲欧美| 久久精品国产91精品亚洲| 美女图片一区二区| 亚洲人成77777在线观看网| 欧美成人免费小视频| 亚洲在线观看免费视频| 国产精品日韩欧美| 久久爱www久久做| 欧美高清在线一区二区| 欧美激情中文字幕乱码免费| 亚洲日本va午夜在线电影| 久久国产精品一区二区三区四区| 中文高清一区| 在线观看国产日韩| 99re6这里只有精品视频在线观看| 一区二区三区不卡视频在线观看 | 国产精品久久久久久福利一牛影视| 国产精品你懂的| 欧美激情免费观看| 国产精品永久入口久久久| 欧美中文在线观看| 亚洲精品一区中文| 欧美体内she精视频在线观看| 亚洲欧美国产日韩中文字幕| 久久综合99re88久久爱| 日韩午夜视频在线观看| 国产精品久久久久一区二区三区共 | 欧美一区=区| 午夜精彩视频在线观看不卡| 一区在线免费| 欧美婷婷在线| 久久久www成人免费精品| 日韩午夜电影av| 久久国产精品亚洲77777| 亚洲三级视频在线观看| 国产午夜精品视频| 欧美日本中文| 最新国产拍偷乱拍精品| 久久久久久亚洲综合影院红桃| 99视频有精品| 亚洲高清在线观看一区| 国产精品一区二区a| 欧美母乳在线| 亚洲美女在线一区| 欧美黑人一区二区三区| 久久国产成人| 亚洲尤物视频网| 99国产精品久久|