實驗二 棧的應用-算術表達式的計算_第1頁
實驗二 棧的應用-算術表達式的計算_第2頁
實驗二 棧的應用-算術表達式的計算_第3頁
實驗二 棧的應用-算術表達式的計算_第4頁
實驗二 棧的應用-算術表達式的計算_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

實驗二棧的應用---算術表達式的計算實驗二棧的應用---算術表達式的計算實驗二棧的應用---算術表達式的計算實驗二棧的應用---算術表達式的計算編制僅供參考審核批準生效日期地址:電話:傳真:郵編:浙江大學城市學院實驗報告課程名稱數(shù)據(jù)結構與算法實驗項目名稱實驗二棧的應用---算術表達式的計算實驗成績指導老師(簽名)日期實驗目的和要求1.進一步掌握棧的基本操作的實現(xiàn)。2.掌握棧在算術表達式的計算方面的應用。二.實驗內(nèi)容1.編寫程序利用棧將中綴表達式轉(zhuǎn)換成后綴表達式,即從鍵盤輸入任一個中綴表達式(字符串形式),轉(zhuǎn)換成后綴表達式后,將后綴表達式輸出。假設:中綴表達式包含圓括號()及雙目運算符+、-、*、/、^(乘方)。要求:把棧的基本操作的實現(xiàn)函數(shù)存放在頭文件中(棧元素的類型為char),在主文件中包含將中綴表達式S1轉(zhuǎn)換成后綴表達式S2的轉(zhuǎn)換函數(shù)voidChange(char*S1,char*S2)及主函數(shù),在主函數(shù)中進行輸入輸出及轉(zhuǎn)換函數(shù)的調(diào)用。2.選做:編寫利用棧對后綴表達式進行求值的函數(shù)doubleCompute(char*str),以計算從前述程序得到的后綴表達式的值。要求:把棧的基本操作的實現(xiàn)函數(shù)存放在頭文件中(棧元素的類型為double),在主文件中添加后綴表達式求值函數(shù),并在主函數(shù)中增加調(diào)用求值函數(shù)及輸出結果值的語句。3.填寫實驗報告,實驗報告文件取名為。4.上傳實驗報告文件與源程序文件、(若有)及到Ftp服務器上你自己的文件夾下。函數(shù)的功能說明及算法思路(算法思路見源程序的注釋部分)實驗結果與分析五.心得體會【附錄----源程序】#include<>#include<>#include<>#include""#include""voidmain(){ charx[30],y[30]; doubler; while(1){ cout<<"請輸入一個中綴算術表達式:"; (x,sizeof(x)); Change(x,y); cout<<"對應的后綴算術表達式為:"; cout<<y<<endl; r=Compute(y); cout<<"后綴算術表達式值為:"<<r<<endl<<endl; }}typedefcharElemType1;structStack1{ ElemType1*stack; inttop; intMaxSize;};voidInitStack(Stack1&S){ =10; =newElemType1[]; if(!{ cerr<<"動態(tài)儲存分配失敗"<<endl; exit(1); } =-1;}voidPush(Stack1&S,ElemType1item){ if=={ intk=sizeof(ElemType1); =(ElemType1*)realloc,2**k); =2*; } ++; []=item;}ElemType1Pop(Stack1&S){ if==-1){ cerr<<"Stackisempty!"<<endl; exit(1); } ; return[+1];}ElemType1Peek(Stack1&S){ if==-1){ cerr<<"Stackisempty!"<<endl; exit(1); } return[];}boolEmptyStack(Stack1&S){ return==-1;}voidClearStack(Stack1&S){ if{ delete[]; =0; } =-1; =0;}{ cout<<"中綴表達式表示錯誤!"<<endl; exit(1); } while((ch>='0'&&ch<='9')||ch=='.'){ S2[j++]=ch; ch=S1[++i]; } S2[j++]=''; } } { i++; y=0; doublej=; while(str[i]>=48&&str[i]<=57){ y=y+(str[i]-48)/j; i++; j*=10; } x+=y; } } Push(S,x); } if(EmptyStack(S)){ cerr<<"expressionerror!"<<endl; exit(1);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論