亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        表達式轉(zhuǎn)換及求值探析

        2020-04-05 10:57:20
        安順學院學報 2020年1期
        關鍵詞:運算符轉(zhuǎn)換法二叉樹

        (1、2.安順學院電子與信息工程學院,貴州 安順561000)

        0 引言

        表達式是由操作數(shù)、運算符和界限符組成。操作數(shù)可以是常數(shù)、變量、表達式,運算符可以是算術運算符、關系運算符和邏輯運算符,界限符有左右括弧和表達式結束符。表達式有中綴、前綴和后綴表示法。中綴表達式(通常稱表達式),是運算符放在兩操作數(shù)的中間,如:a+b、4*3/(4-2)+8,它是表達式的常見表示法。前綴表達式是運算符放在兩操作數(shù)的前面,如:+ab、+/*43-428。后綴表達式是運算符放在兩操作數(shù)的后面,如:ab+、43*42-/8+。

        表達式求值是數(shù)學中的一個基本問題,也是程序設計中的一個常見問題。對于表達式的三種表示法,計算機可以采用不同的運算規(guī)則來求解。表達式的運算規(guī)則:先乘除,后加減,從左到右計算,先括號內(nèi),后括號外,即表達式運算不僅要依賴運算符優(yōu)先級,還要處理括號,在計算機中操作很不方便。前綴表達式的運算規(guī)則:連續(xù)出現(xiàn)的兩個操作數(shù)和在它之前出現(xiàn)且緊靠它的兩個操作數(shù)構成一個最小表達式。后綴表達式的運算規(guī)則:每個運算符和在它之前出現(xiàn)且緊靠它的兩個操作數(shù)構成一個最小表達式。由此可見,后綴表達式中運算符出現(xiàn)的順序正是表達式的運算順序。因此,在對表達式求值時,通常先將表達式轉(zhuǎn)換成相應的后綴表達式,再對后綴表達式進行求值。

        1 表達式轉(zhuǎn)換研究現(xiàn)狀

        目前,表達式之間的轉(zhuǎn)換已有很多研究。如:文獻[1]介紹了利用兩個棧及括號法實現(xiàn)表達式轉(zhuǎn)換為后綴表達式的方法,但對括號轉(zhuǎn)換法的描述:“移動所有運算符來取代所有的右括號,并以最近為原則進行替換?!?,容易把運算符和右括號對錯位;文獻[2]介紹了利用棧和數(shù)組實現(xiàn)表達式轉(zhuǎn)換為后綴表達式的方法;文獻[3]和[7]介紹了利用二叉樹實現(xiàn)表達式轉(zhuǎn)換為后綴表達式的方法,但對轉(zhuǎn)換過程的描述不夠清楚;文獻[5]介紹了用兩個棧、加括號及語法樹實現(xiàn)表達式轉(zhuǎn)換為后綴表達式的方法,但文中對括號轉(zhuǎn)換法的描述:“將每個運算符移到其所在括號的外面?!?,沒有說明清楚運算符是移到括號的前面還是后面,容易產(chǎn)生歧義。因為運算符移到其所在的括號前面和后面得到的是表達式不同的表示形式;文獻[6]和[9]介紹了用一個棧實現(xiàn)表達式轉(zhuǎn)換成后綴表達式的方法;文獻[10]、[11]及[12]介紹了利用兩個棧實現(xiàn)中綴表達式轉(zhuǎn)換后綴表達式方法及后綴表達式的求值。

        通過分析、對比目前表達式轉(zhuǎn)換成后綴表達式的各種方法,總結得出目前表達式轉(zhuǎn)換為后綴表達式的方法主要有:(1)利用兩個棧進行轉(zhuǎn)換;(2)利用一個棧進行轉(zhuǎn)換;(3)利用二叉樹進行轉(zhuǎn)換;(4)用(加)括號法進行轉(zhuǎn)換。但這些轉(zhuǎn)換方法不夠全面和完整,本文提出了這幾種轉(zhuǎn)換方法:(1)利用棧和隊列進行轉(zhuǎn)換;(2)加括號去括號進行轉(zhuǎn)換;(3)直接轉(zhuǎn)換;(4)二叉樹進行轉(zhuǎn)換。以期對表達式轉(zhuǎn)換為后綴表達式的方法進行補充和完善。

        2 表達式轉(zhuǎn)換成后綴表達式的方法

        2.1 利用棧和隊列進行轉(zhuǎn)換

        將一個表達式(exp)轉(zhuǎn)換成后綴表達式,操作數(shù)之間的相對次序不變,但運算符的相對次序可能要變,同時還要去掉括號。文章根據(jù)表達式中運算符優(yōu)先級、結合棧及隊列的特點,利用一個順序棧和一個順序隊列來實現(xiàn)表達式轉(zhuǎn)換為后綴表達式,其中順序棧S存儲運算符,順序隊列Q存儲中間結果,其具體轉(zhuǎn)換過程的偽代碼描述如下:

        InitStack(S);

        InitQueue(Q);

        While(從exp讀取字符ch,ch!=’

        亚洲成a人片在线观看天堂无码| 女人av天堂国产在线| 日韩日韩日韩日韩日韩日韩| 欧洲人妻丰满av无码久久不卡| 亚洲自拍愉拍| 免费人妻精品区一区二区三| 伊人久久这里只有精品| 亚洲国产精品综合久久网各| 亚洲男人精品| 精品国产一区二区三区男人吃奶| 蜜桃av人妻精品一区二区三区| 久久久久亚洲av成人无码| 欧美精品一区二区性色a+v| 中文字幕偷拍亚洲九色| 黄色一区二区三区大全观看| 久久不见久久见免费影院国语| 精品国产一区二区三区久久久狼| 亚洲精品白浆高清久久| 天堂蜜桃视频在线观看| 国产三级久久久精品麻豆三级| 国产精品调教| 性色av手机在线观看| 日韩女优av一区二区| 97久久精品亚洲中文字幕无码 | 亚洲av日韩综合一区久热| 亚洲日韩∨a无码中文字幕| AV中文码一区二区三区| 东京热加勒比久久精品| 成人精品视频一区二区三区尤物 | 一本色道久久99一综合| 日韩在线精品视频观看| 在线a亚洲视频播放在线播放| 97人人模人人爽人人喊电影 | 国产乱人伦精品一区二区| 国产成人啪精品视频免费网| 成人大片免费在线观看视频| 四虎影视成人永久免费观看视频| 精品人妻无码视频中文字幕一区二区三区| 亚洲国产综合性感三级自拍| 精品国产成人av久久| 亚洲处破女av日韩精品|