中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

逆波蘭算法

發布時間:2020-03-25 12:06:07 來源:網絡 閱讀:639 作者:WZM3558862 欄目:編程語言

這里先給出運算符的優先級,表中0級優先級最低,7級最高,如下:

優先級0123   4       5     6         7  
運算符+- */      @~     !%^   )
說明














第一、生成逆波蘭表達式

首先構建一個存儲器,另一個符號棧存儲器是從左向右儲存數據,而符號棧則遵守后進先出的原則,計算表達式按從左至右的順序掃描。

讀入一個數據(重點注意:數值與函數名非單個字符,需要做判斷處理)

1. 如果是左單目運算符或者函數名,直接入符號棧;比如 正負號 ~ @ max sin

2. 如果是右單目運算符,直接入存儲器棧;比如 階乘!與百分號%

3. 如果是運輸量,則直接寫入存儲器;檢查符號棧頂是否有單目運算符,有的話則全部出棧,并寫入存儲器;

4. 如果是左括號"(",則直接入符號棧;

5. 如果是右括號")",則彈出符號棧數據,寫入存儲器,一直到左括號彈出(左括弧直接丟棄,不寫入存儲器),再檢查棧頂是否為左單目運算符或者函數名,是的話繼續彈出,直到遇到雙目運算符;

6. 如果是雙目運算符,則與棧頂符號比較優先級,若大于棧頂優先級,則入棧;否則彈出棧頂符號并寫入存儲器,直到棧頂符號的運算優先級較小為止;

7.如果是函數參數的連接逗號“,”時,則彈出符號棧數據,直到遇到左括弧 ( 或者逗號,為止,再將逗號,入符號棧;

8.如果是結束符(表示表達式已全部讀完),則符號棧全部彈出并寫入存儲器,否則繼續按以上規則讀取下一個數據;

下面將逐步介紹逆波蘭式生成過程:

表達式按從左至右掃描,標記為紅色的字符為當前步驟掃描的字符:

0、預處理:為表達式添加一個結束標示符#”,掃描時按雙目運算符考慮,

處理后表達式為:2+8+4^2*3#

12+8+4^2*3#掃描“2,按規則3,將運算量 2壓入存儲器,如下:

存儲器

2


符號棧:暫空


22+8+4^2*3#掃描“+”,按規則6,將加號壓入符號棧,如下:

2

+


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

如皋市| 资阳市| 陕西省| 登封市| 汝州市| 棋牌| 孟津县| 阜新| 年辖:市辖区| 高阳县| 洱源县| 房产| 延吉市| 大足县| 会理县| 阿合奇县| 太原市| 铁岭市| 亳州市| 图们市| 盐城市| 抚远县| 凤城市| 长宁区| 阿克| 苍南县| 潼关县| 岳池县| 隆安县| 呼和浩特市| 历史| 泸溪县| 乌什县| 铅山县| 蒲城县| 方山县| 洛扎县| 新巴尔虎左旗| 盘山县| 贞丰县| 朔州市|