=g">
優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)

優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)

ID:8814047

大?。?9.00 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2018-04-08

優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)_第1頁(yè)
優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)_第2頁(yè)
優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)_第3頁(yè)
優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)_第4頁(yè)
資源描述:

《優(yōu)先矩陣轉(zhuǎn)化為優(yōu)先函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、一種方便地求算符優(yōu)先函數(shù)的方法——迭代法若已知運(yùn)算符之間的優(yōu)先關(guān)系,可按如下步驟構(gòu)造優(yōu)先函數(shù):1、對(duì)每個(gè)運(yùn)算符a(包括#在內(nèi))令f(a)=g(a)=12、如果a?b且f(a)<=g(b)令f(a)=g(b)+13、如果a?b且f(a)>=g(b)令g(b)=f(a)+14、如果a?b而f(a)≠g(b),令min{f(a),g(b)}=max{f(a),g(b)}5、重復(fù)2~4,直到過(guò)程收斂。如果重復(fù)過(guò)程中有一個(gè)值大于2n,則表明不存在算符優(yōu)先函數(shù)。代碼為:#include#include#defineMaxSize100#

2、defineMaxOp9struct{charch;//運(yùn)算符intpri;//優(yōu)先級(jí)}lpri[]={{'+',1},{'-',1},{'*',1},{'/',1},{'(',1},{')',1},{'#',1}},rpri[]={{'+',1},{'-',1},{'*',1},{'/',1},{'(',1},{')',1},{'#',1}};intf(charop)//求左運(yùn)算符op的優(yōu)先級(jí){inti;for(i=0;i

3、優(yōu)先級(jí){inti;for(i=0;i

4、

5、ch==')'

6、

7、ch=='+'

8、

9、ch=='-'

10、

11、ch=='*'

12、

13、ch=='/'

14、

15、ch=='#')return1;elsereturn0;}*/charPrecede(charc1,charc2){inti=0,j=0;staticchararray[49]={'>','>','<','<','<','>','>','>','>','<','

16、<','<','>','>','>','>','>','>','<','>','>','>','>','>','>','<','>','>','<','<','<','<','<','=','!','>','>','>','>','!','>','>','<','<','<','<','<','!','='};switch(c1)/*i為下面array的橫標(biāo)*/{case'+':i=0;break;case'-':i=1;break;case'*':i=2;break;case'/':i=3;break;case'(':i=4;break;case')':i=5

17、;break;case'#':i=6;break;}switch(c2)/*j為下面array的縱標(biāo)*/{case'+':j=0;break;case'-':j=1;break;case'*':j=2;break;case'/':j=3;break;case'(':j=4;break;case')':j=5;break;case'#':j=6;break;}return(array[7*i+j]);/*返回運(yùn)算符*/}voidmain(){inti,j,k=1;while(k!=0){k=0;for(i=0;i<7;i++){for(j=0;j<7;j++){i

18、f(Precede(lpri[i].ch,rpri[j].ch)=='>'&&f(lpri[i].ch)<=g(rpri[j].ch)){lpri[i].pri=rpri[j].pri+1;k=1;}elseif(Precede(lpri[i].ch,rpri[j].ch)=='<'&&f(lpri[i].ch)>=g(rpri[j].ch)){rpri[j].pri=lpri[i].pri+1;k=1;}}}}printf("");for(i=0;i<7;i++)printf("%3c",lpri[i].ch);printf("");printf("入棧優(yōu)

19、先函數(shù)f:");for(i=0;i<7;i++)printf("%3d",lpri[i].pri);printf("");printf("比較優(yōu)先函數(shù)g:");for(i=0;i<7;i++)printf("%3d",rpri[i].pri);printf("");}

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。