亚洲免费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!=’

        最新亚洲人AV日韩一区二区| 久久人妻少妇嫩草av| 亚洲人精品亚洲人成在线| 精品国产午夜福利在线观看| 嗯啊 不要 啊啊在线日韩a| 丰满老熟女性生活视频| 男人的天堂av网站| 国产性猛交╳xxx乱大交| 日日躁欧美老妇| 亚洲视频专区一区二区三区| 精品久久久久久久无码人妻热| 久草热8精品视频在线观看| 少妇bbwbbw高潮| 精品一区二区av在线| 亚洲综合av一区二区三区| 亚洲va在线va天堂va手机| 激情一区二区三区视频| 精品人妻av区乱码色片| 中文字幕一区在线观看视频| 国产伦精品一区二区三区四区| 亚洲av无吗国产精品| 人人妻人人澡人人爽国产一区| 亚洲狠狠婷婷综合久久| 无遮挡粉嫩小泬| 久久黄色国产精品一区视频| 无码国产伦一区二区三区视频| 亚洲欧洲日产国码无码AV一| 人妻熟女中文字幕av| 日韩人妻少妇一区二区三区| 国产精品香蕉在线观看| 久草视频华人在线观看| 虎白女粉嫩粉嫩的18在线观看| 中文字幕精品久久久久人妻红杏ⅰ| 亚洲五月激情综合图片区| 一区二区三区日本视频| 国产精品毛片一区二区三区| 久久青青热| 久久本道久久综合一人| 97一期涩涩97片久久久久久久 | 激情综合婷婷色五月蜜桃| 免费无码又爽又刺激网站|