編程語(yǔ)言是如何進(jìn)行復(fù)合數(shù)學(xué)運(yùn)算的?

本篇文章探討的是,諸如(4+5)x(4-2)這樣的運(yùn)算編程語(yǔ)言是如何識(shí)別括號(hào)并進(jìn)行運(yùn)算的唁情?我們知道4+5=9 4-2=2加上括號(hào)以后編程語(yǔ)言在編譯的過(guò)程當(dāng)中又是如何進(jìn)行運(yùn)算的呢?
這其中的原理其實(shí)很簡(jiǎn)單镜豹,我們可以使用雙棧的方法解決有括號(hào)的運(yùn)算問(wèn)題傲须。

棧是啥?

簡(jiǎn)單的說(shuō)棧是一種簡(jiǎn)單的線性表趟脂,我們只可以向這個(gè)線性表的一端進(jìn)行插入和刪除的操作泰讽,插入的新元素始終都會(huì)在舊棧的上面,如果你想刪除舊棧需要移走新棧才能再進(jìn)行刪除昔期。棧的特性就是先進(jìn)后出已卸,即最先進(jìn)入的棧會(huì)在最后才能取出來(lái)。

詳細(xì)參考百度百科

雙棧方法處理帶括號(hào)的復(fù)合運(yùn)算

1.首先我們有一個(gè)計(jì)算式子(4+5)x(4-2)
2.我們需要兩個(gè)棧硼一,一個(gè)棧用來(lái)存儲(chǔ)數(shù)字咬最,另外一個(gè)棧用來(lái)存儲(chǔ)運(yùn)算符號(hào)即加減乘除


雙棧.png

3.每一個(gè)數(shù)字括號(hào)運(yùn)算符號(hào)我們都當(dāng)作字符來(lái)看待。
4.現(xiàn)在從左向右遍歷這一串字符(4+5)x(4-2)
5.忽略所有的左括號(hào)欠动,當(dāng)我們碰見(jiàn)數(shù)字的時(shí)候就將數(shù)字放到數(shù)字棧當(dāng)中永乌,當(dāng)我們碰見(jiàn)運(yùn)算符號(hào)的時(shí)候就將符號(hào)放置到運(yùn)算棧。將4放入數(shù)字棧具伍,然后將+號(hào)放到運(yùn)算棧翅雏,再將數(shù)字5棧放到運(yùn)算棧。

堆棧

6.關(guān)鍵在這里H搜俊M浮!萤厅,當(dāng)我們遍歷讀取到右括號(hào)的時(shí)候橄抹,開(kāi)始將數(shù)字棧和運(yùn)算棧當(dāng)中的字符一次取出來(lái)進(jìn)行運(yùn)算,我們先取出數(shù)字棧的5惕味,在取出運(yùn)算符棧當(dāng)中的+號(hào)楼誓,最后取出4得到5+4進(jìn)行運(yùn)算,將結(jié)果9重新存入已經(jīng)取空的棧當(dāng)中(剛才操作取空的)

運(yùn)算后的雙棧

之后我們看到的棧應(yīng)該入上圖所示名挥。

7.之后我們繼續(xù)遍歷原來(lái)的算式疟羹,將x存入運(yùn)算棧當(dāng)中,忽略所有左括號(hào)禀倔,將數(shù)字4存入數(shù)字棧當(dāng)中榄融,將-號(hào)存入運(yùn)算棧當(dāng)中,將數(shù)字2存入數(shù)字棧當(dāng)中救湖。直到我們又碰到一個(gè)右括號(hào)再將棧內(nèi)的元素取出進(jìn)行運(yùn)算愧杯。

棧的運(yùn)算

8.運(yùn)算的過(guò)程當(dāng)中我們需要注意一個(gè)-號(hào)的問(wèn)題,如果是減號(hào)運(yùn)算的話(huà)鞋既,我們就需要添加一個(gè)-號(hào)來(lái)保證得到的數(shù)字結(jié)果是正確的力九。因?yàn)闂H〕龅臄?shù)字順序是反的會(huì)影響減法運(yùn)算的結(jié)果耍铜。如果是除法運(yùn)算我們就要計(jì)算它的負(fù)一次冪來(lái)保證運(yùn)算的結(jié)果正確。(程序邏輯上這么做來(lái)保證結(jié)果正確)進(jìn)行一次運(yùn)算我們就將結(jié)果重新存入棧當(dāng)中畏邢。

棧的運(yùn)算

9.最后我們將剩余的數(shù)字和符號(hào)都取出來(lái)進(jìn)行運(yùn)算就可以得到結(jié)果了业扒。

總結(jié)

雙棧方法就是比較簡(jiǎn)單的編程語(yǔ)言進(jìn)行帶括號(hào)的復(fù)合運(yùn)算的計(jì)算方法,以上僅僅是運(yùn)算流程和思路舒萎,真正實(shí)現(xiàn)的過(guò)程當(dāng)中還會(huì)遇到一些實(shí)際問(wèn)題需要解決程储。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市臂寝,隨后出現(xiàn)的幾起案子章鲤,更是在濱河造成了極大的恐慌,老刑警劉巖咆贬,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件败徊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡掏缎,警方通過(guò)查閱死者的電腦和手機(jī)皱蹦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)眷蜈,“玉大人沪哺,你說(shuō)我怎么就攤上這事∽萌澹” “怎么了辜妓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忌怎。 經(jīng)常有香客問(wèn)我籍滴,道長(zhǎng),這世上最難降的妖魔是什么榴啸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任孽惰,我火速辦了婚禮,結(jié)果婚禮上插掂,老公的妹妹穿的比我還像新娘灰瞻。我一直安慰自己,他們只是感情好辅甥,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著燎竖,像睡著了一般璃弄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上构回,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天夏块,我揣著相機(jī)與錄音疏咐,去河邊找鬼。 笑死脐供,一個(gè)胖子當(dāng)著我的面吹牛浑塞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播政己,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼酌壕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了歇由?” 一聲冷哼從身側(cè)響起卵牍,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沦泌,沒(méi)想到半個(gè)月后糊昙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谢谦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年释牺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片回挽。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡没咙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厅各,到底是詐尸還是另有隱情镜撩,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布队塘,位于F島的核電站袁梗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏憔古。R本人自食惡果不足惜遮怜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸿市。 院中可真熱鬧锯梁,春花似錦、人聲如沸焰情。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)内舟。三九已至合敦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間验游,已是汗流浹背充岛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工保檐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人崔梗。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓夜只,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蒜魄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扔亥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容