最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語(yǔ)言經(jīng)典算法之中序式轉(zhuǎn)后序式

2019-04-03 15:49 作者:C語(yǔ)言基礎(chǔ)  | 我要投稿

中序式轉(zhuǎn)后序式

新手上路,多多關(guān)注,這真的對(duì)我很重要

說(shuō)明平常所使用的運(yùn)算式,主要是將運(yùn)算元放在運(yùn)算子的兩旁,例如a+b/d這樣的式子,這稱(chēng) 之為中序(Infix)表示式,對(duì)于人類(lèi)來(lái)說(shuō),這樣的式子很容易理 解,但由于電腦執(zhí)行指令時(shí)是 有順序的,遇到中序表示式時(shí),無(wú)法直接進(jìn)行運(yùn)算,而必須進(jìn)一步判斷運(yùn)算的先后順序,所以 必須將中序表示式轉(zhuǎn)換為另一種表示方 法。

可以將中序表示式轉(zhuǎn)換為后序(Postfix)表示式,后序表示式又稱(chēng)之為逆向波蘭表示式(Reverse polishnotation),它是由波蘭的數(shù)學(xué)家盧卡謝維奇提出,例如(a+b)*(c+d)這個(gè)式子,表示為后序 表示式時(shí)是ab+cd+*。

解析

用手算的方式來(lái)計(jì)算后序式相當(dāng)?shù)暮?jiǎn)單,將運(yùn)算子兩旁的運(yùn)算元依先后順序全括號(hào)起來(lái),然后將所有的右括號(hào)取代為左邊最接近的運(yùn)算子(從最內(nèi)層括號(hào)開(kāi)始),最后去掉所有的左括號(hào) 就可以完成后序表示式,例如: a+b*d+c/d => ((a+(b*d))+(c/d)) -> abd*+cd/+,如果要用程式來(lái)進(jìn)行中序轉(zhuǎn)后序,則必須使用堆疊,演算法很簡(jiǎn)單,直接敘述的話就是使用回 圈,取出中序式的字元,遇運(yùn)算元直接輸出,堆疊運(yùn)算子與左括號(hào), ISP>ICP的話直接輸出堆 疊中的運(yùn)算子,遇右括號(hào)輸出堆疊中的運(yùn)算子至左括號(hào)。

新手上路,多多關(guān)注,這真的對(duì)我很重要


如果要將中序式轉(zhuǎn)為前序式,則在讀取中序式時(shí)是由后往前讀取,而左右括號(hào)的處理方式相反, 其余不變,但輸出之前必須先置入堆疊,待轉(zhuǎn)換完成后再將堆疊中的 值由上往下讀出,如此就 是前序表示式。

代碼實(shí)現(xiàn)

新手上路,多多關(guān)注,這真的對(duì)我很重要?

測(cè)試代碼

新手上路,多多關(guān)注,這真的對(duì)我很重要?


C語(yǔ)言經(jīng)典算法之中序式轉(zhuǎn)后序式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
称多县| 同德县| 郎溪县| 红安县| 博野县| 筠连县| 揭西县| 进贤县| 筠连县| 禄劝| 尉犁县| 蒙自县| 五大连池市| 河曲县| 玉门市| 长岛县| 永嘉县| 松江区| 大宁县| 江津市| 洛川县| 安庆市| 石棉县| 龙里县| 义马市| 宁夏| 双桥区| 高邑县| 毕节市| 若尔盖县| 深水埗区| 株洲县| 府谷县| 崇仁县| 长宁县| 景谷| 内黄县| 新蔡县| 乐安县| 陆河县| 城口县|