2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、用兩種方式實(shí)現(xiàn)表達(dá)式自動計(jì)算- 1 -數(shù)據(jù)結(jié)構(gòu)(雙語) 數(shù)據(jù)結(jié)構(gòu)(雙語)——項(xiàng)目文檔報(bào)告 項(xiàng)目文檔報(bào)告用兩種方式實(shí)現(xiàn)表達(dá)式自動計(jì)算 用兩種方式實(shí)現(xiàn)表達(dá)式自動計(jì)算專 業(yè): 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)應(yīng)用 計(jì)算機(jī)科學(xué)與技術(shù)應(yīng)用 班 級: 級: 指導(dǎo)教師: 指導(dǎo)教師: 吳亞峰 吳亞峰 姓 名: 名:

2、學(xué) 號: 號: 用兩種方式實(shí)現(xiàn)表達(dá)式自動計(jì)算- 3 -一、設(shè)計(jì)思想 一、設(shè)計(jì)思想A: 中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的設(shè)計(jì)思想:我們借助計(jì)算機(jī)計(jì)算一個(gè)算數(shù)表達(dá)式的值,而在計(jì)算機(jī)中,算術(shù)表達(dá)式是由常量,變量,運(yùn)算符和括號組成。由于運(yùn)算符的優(yōu)先級不同又要考慮括號。所以表達(dá)式不可能嚴(yán)格的從左到右進(jìn)行,因此我們借助棧和數(shù)組來實(shí)現(xiàn)表達(dá)式的求值。棧分別用來存儲操作數(shù)和運(yùn)算符。在計(jì)算表達(dá)式的值之前,首先要把有括號的表

3、達(dá)式轉(zhuǎn)換成與其等值的無括號的表達(dá)式,也就是通常說的中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式。在這個(gè)過程中,要設(shè)計(jì)兩個(gè)棧,一個(gè)浮點(diǎn)型的存儲操作數(shù),用以對無符號的表達(dá)式進(jìn)行求值。另一個(gè)字符型的用來存儲運(yùn)算符,用以將算術(shù)表達(dá)式變成無括號的表達(dá)式;我們要假設(shè)運(yùn)算符的優(yōu)先級:( ) , * /, + - 。首先將一標(biāo)識號‘#’入棧,作為棧底元素;接著從左到右對算術(shù)表達(dá)式進(jìn)行掃描。每次讀一個(gè)字符,若遇到左括號‘(’ ,則進(jìn)棧;若遇到的是操作數(shù),則立即輸出;若又遇到

4、運(yùn)算符,如果它的優(yōu)先級比棧頂元素的優(yōu)先級數(shù)高的話,則直接進(jìn)棧,否則輸出棧頂元素,直到新的棧頂元素的優(yōu)先級數(shù)比它低的,然后將它壓棧;若遇到是右括號‘) ’ ,則將棧頂?shù)倪\(yùn)算符輸出,直到棧頂?shù)脑貫椤ā?,然后,左右括號互相底消;如果我們設(shè)計(jì)掃描到‘#’的時(shí)候表示表達(dá)式已經(jīng)掃描完畢,表達(dá)式已經(jīng)全部輸入,將棧中的運(yùn)算符全部輸出,刪除棧底的標(biāo)識號。以上完成了中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式,輸出無括號的表達(dá)式,若遇數(shù)值,操作數(shù)進(jìn)棧;若遇運(yùn)算符,讓操作數(shù)

5、棧的棧頂和次棧頂依次出棧并與此運(yùn)算符進(jìn)行運(yùn)算,運(yùn)算結(jié)果入操作數(shù)棧;重復(fù)以上的步驟,直到遇到‘#’ ,則此時(shí)棧中的結(jié)果便是所求的后綴表達(dá)式的值,接著輸出結(jié)果。以上就是設(shè)計(jì)這個(gè)算法的主要的思想。設(shè)計(jì)思想的流程圖詳見圖 A;B: 直接計(jì)算表達(dá)式的值。所謂的掃一遍就是當(dāng)掃完一個(gè)表達(dá)式結(jié)果也就計(jì)算出來了,是在上面掃兩遍的思想進(jìn)行修改的得來,首先,我們要建立兩個(gè)棧,一個(gè)為字符型的用來存放運(yùn)算符,另一個(gè)浮點(diǎn)型的用來存放操作數(shù)。我們開始對表達(dá)式進(jìn)行掃描

6、,首先我們要假設(shè)運(yùn)算符的優(yōu)先級:( ) , * /, + - 。如果掃描到的是數(shù)字符號,把它們轉(zhuǎn)換成浮點(diǎn)型數(shù)據(jù),存入操作數(shù)棧中。如果掃描到的是運(yùn)算符號,第一個(gè)運(yùn)算符進(jìn)棧,遇到‘(’存入運(yùn)算符棧中,我們按照第一種算法的方法將表達(dá)式依次掃描。只不過不同的是,當(dāng)每取得的一個(gè)運(yùn)算符的時(shí)候,都要與棧頂?shù)倪\(yùn)算符進(jìn)行比較,如果它的優(yōu)先級小于棧頂運(yùn)算符優(yōu)先級時(shí),取出棧頂運(yùn)算符并從操作數(shù)棧中取棧頂兩個(gè)數(shù)進(jìn)行運(yùn)算,得到的結(jié)果則要存回操作數(shù)棧,就這樣邊掃描

溫馨提示

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

評論

0/150

提交評論