![數(shù)據(jù)結(jié)構(gòu)魔王語言解釋c語言實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/e55997113f520cac87bc8457d498cf97/e55997113f520cac87bc8457d498cf971.gif)
![數(shù)據(jù)結(jié)構(gòu)魔王語言解釋c語言實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/e55997113f520cac87bc8457d498cf97/e55997113f520cac87bc8457d498cf972.gif)
![數(shù)據(jù)結(jié)構(gòu)魔王語言解釋c語言實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/e55997113f520cac87bc8457d498cf97/e55997113f520cac87bc8457d498cf973.gif)
![數(shù)據(jù)結(jié)構(gòu)魔王語言解釋c語言實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/e55997113f520cac87bc8457d498cf97/e55997113f520cac87bc8457d498cf974.gif)
![數(shù)據(jù)結(jié)構(gòu)魔王語言解釋c語言實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/e55997113f520cac87bc8457d498cf97/e55997113f520cac87bc8457d498cf975.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
[數(shù)據(jù)結(jié)構(gòu)]魔王語言解釋c語言實(shí)現(xiàn)[基本要求]
用下述兩條具體規(guī)則和上述規(guī)則形式(2)實(shí)現(xiàn)。設(shè)大寫字母表示魔王語言的詞匯;小寫字母表示人的語言詞匯;希臘字母表示可以用大寫字母或小寫字母代換的變量。魔王語言可含人的詞匯。
(1)B->tAdA
(2)A->sae
[測試數(shù)據(jù)]
B(ehnxgz)B解釋成tsaedsaeezegexenehetsaedsae【實(shí)現(xiàn)】將需要解釋的魔王語言當(dāng)成一個(gè)字符數(shù)組,入棧1。再依次出棧,入棧2,依次處理頂端字符,若是開括號(hào)逐一出棧入隊(duì)列,直至閉括號(hào)出棧。再逐一出隊(duì)列,按照規(guī)則2解釋,再重新入棧2。出棧2,按照規(guī)則1解釋。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>typedefstructNode//節(jié)點(diǎn){chardata;structNode*next;}Node,*NodePtr;typedefstructStak //棧鏈表{NodePtrtop;NodePtrbot;intcount;}Stak;//初始化棧voidInitStak(Stak*ts) {ts->top=(NodePtr)malloc(sizeof(Node));if(NULL==ts->top){printf("分配失敗");exit(-1);}ts->bot=ts->top;ts->count=0;ts->top->next=NULL;}//入棧voidPush(Stak*S,chare) {NodePtrpnew=(NodePtr)malloc(sizeof(Node));pnew->data=e;pnew->next=S->top;S->top=pnew;S->count++;}//出棧charPop(Stak*S) {NodePtrp;if(S->bot==S->top){//空時(shí)返回1刪除失敗exit(1);}p=S->top;chare=p->data;S->top=S->top->next;free(p);S->count--;returne;}//打印棧voidprin(Stak*S){NodePtrp;p=S->top;while(p!=S->bot){printf("%c\n",p->data);p=p->next;}}boolEmptyStack(Stak*S)//判斷是否空棧{if(S->count==0)return1;return0;}typedefstructQNode //隊(duì)列節(jié)點(diǎn){chardata;structQNode*next;}QNode,*QNodePtr;typedefstructLinkQueue //隊(duì)列鏈表{QNodePtrfront,rear;}Queue;//隊(duì)列初始化voidInitQue(Queue*Q){QNodePtrp=(QNodePtr)malloc(sizeof(QNode)); //p為頭節(jié)點(diǎn)p->data=NULL;p->next=NULL;Q->front=p;Q->rear=p;}//入隊(duì)列voidEnQue(Queue*Q,chare){QNodePtrp=(QNodePtr)malloc(sizeof(QNode));p->data=e;p->next=NULL;Q->rear->next=p;Q->rear=p;}charDeQue(Queue*Q)//出隊(duì)列{QNodePtrp;charc;if(Q->front==Q->rear){//空時(shí)exit(1);}p=Q->front->next;c=Q->front->next->data;Q->front->next=p->next;if(p==Q->rear){Q->rear=Q->front;}free(p);returnc;}voidpri(Queue*Q)//打印隊(duì)列{QNodePtrp;p=Q->front;if(p!=NULL){while(p!=Q->rear){printf("%c",p->next->data);p=p->next;}}}boolEmptyQue(Queue*Q){if(Q->front==Q->rear)return1;return0;}voidReverse(charM[],Stak*S){inti;intlen=strlen(M);intl=0,r=0;for(i=0;i<len;i++){Push(S,M[i]);if(M[i]=='(')l++;if(M[i]==')')r++;}if(l!=r)exit(1);}voidEnA(Queue*Q)//規(guī)則1{EnQue(Q,'s');EnQue(Q,'a');EnQue(Q,'e');}voidEnB(Queue*Q)//規(guī)則1{EnQue(Q,'t');EnA(Q);EnQue(Q,'d');EnA(Q);}voidFpri(Queue*Q){charc;while(!EmptyQue(Q)){c=DeQue(Q);switch(c){case't':printf("天");break;case'd':printf("地");break;case's':printf("上");break;case'a':printf("一只");break;case'e':printf("鵝");break;case'z':printf("追");break;case'g':printf("趕");break;case'x':printf("下");break;case'n':printf("蛋");break;case'h':printf("恨");break;default:printf("Error");}}}voidTran(Stak*Sbe,Stak*Saf,Queue*Q){charc;chard;inti=0;while(Sbe->count!=0){c=Pop(Sbe);if(c==')')i=Saf->count;elseif(c=='('){intj=Saf->count;while(j>i){d=Pop(Saf);EnQue(Q,d);j--;}chare=Q->front->next->data;DeQue(Q);while(!EmptyQue(Q))//規(guī)則2{chardl=DeQue(Q);Push(Saf,e);Push(Saf,dl);}Push(Saf,e);}elsePush(Saf,c);}while(Saf->count>0){charen;en=Pop(Saf);if(en=='A')EnA(Q);elseif(en=='B')EnB(Q);elseEnQue(Q,en);}Fp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代服務(wù)業(yè)的全球化進(jìn)程與未來趨勢預(yù)測報(bào)告
- 生態(tài)城市規(guī)劃中的公園綠地建設(shè)
- 現(xiàn)代物流技術(shù)創(chuàng)新開啟智能化時(shí)代
- 2023六年級(jí)數(shù)學(xué)上冊(cè) 四 圓的周長和面積 1圓的周長 圓的周長公式的拓展應(yīng)用說課稿 冀教版
- 14-2《變形記》(節(jié)選)(說課稿)-2024-2025學(xué)年高一語文下學(xué)期同步教學(xué)說課稿專輯(統(tǒng)編版必修下冊(cè))
- 11 屹立在世界的東方 第1課時(shí) 說課稿-2023-2024學(xué)年道德與法治五年級(jí)下冊(cè)統(tǒng)編版001
- 2023二年級(jí)數(shù)學(xué)上冊(cè) 五 測量長度 1用厘米作單位量長度第3課時(shí) 用厘米、分米作單位量長度的練習(xí)說課稿 西師大版
- Unit 5 Whose dog is it(說課稿)-2023-2024學(xué)年人教PEP版英語五年級(jí)下冊(cè)
- Unit7 At weekends Period3 (說課稿) 2024-2025學(xué)年譯林版(三起)英語五年級(jí)上冊(cè)
- 22鳥的天堂說課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語文統(tǒng)編版
- 國外文化消費(fèi)研究述評(píng)
- 部編版語文四年級(jí)下冊(cè)第一單元 迷人的鄉(xiāng)村風(fēng)景 大單元整體教學(xué)設(shè)計(jì)
- 湖南省長郡中學(xué)2023-2024學(xué)年高二下學(xué)期寒假檢測(開學(xué)考試)物理 含解析
- 五年級(jí)行程問題應(yīng)用題100道
- 血透病人體重健康宣教
- 脾破裂護(hù)理查房
- 人教版高中物理必修一全套課件【精品】
- 動(dòng)物檢疫技術(shù)-臨診檢疫技術(shù)(動(dòng)物防疫與檢疫技術(shù))
- 《華夏幸福房地產(chǎn)公司人才流失現(xiàn)狀、原因及應(yīng)對(duì)策略》開題報(bào)告(文獻(xiàn)綜述)3400字
- 文化墻、墻體彩繪施工方案
- 小型混凝土攪拌機(jī)-畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論