欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

計算器制作JAVA版(第二步,表達式結構檢查)

系統 1830 0

這個問題一個特點--麻煩!
如何檢查結構呢,結構錯誤是因為不符合我們的目標要求。
在這里我們需要一個格式正確的表達式序列,那么我們就得視具體情況而作出判斷。在這里可是涉及一個巨大的數學思想的!!!其實比較簡單,就是我們高中數學里面最常用到的”分類討論“。
如果你有一個縝密的思路,在這里是非常好的,我這里的分析估計疏漏了大量的情況,希望大家能夠一起補充,共同進步。
首先是比較簡單的一部分,括號數量以及對應情況是否正確。
???????? 那么到底什么是正確的對應呢?類似于這種的()表達式,那么我們現在簡化我們的表達式,假設就只有括號,這可以通過簡單的字符串處理獲得。看以下幾種情況:

()()()
((()))
()(())
(()()(()))

我們不難發現都是正確的,那么究竟為什么正確呢?因為每一個‘(’都有一個‘)’與之相對應。那讓我們對這些對應一個個解析

() ??? ()? ??? ()
(? ??? (? ???? () ????? ) ??? )
() ??? (? ???? ()????? )
( ???? () ???? ()????? ( ?? ()?? ) ?? )

從顏色我們可以看出,一旦出現‘)’就會與最近的一個‘(’相互配對,我們假設配對以后她們一起消失了,那么后面的‘)’與前面的變化效果是一致的。這樣一來,我們就可以得出一個判斷方法:如果出現‘)’就立刻與前面的‘(’配對,然后一起消失,如果沒有可以配對的就自動留下。直到最后,如果還剩下一些括號,就說明匹配有錯誤。那么這種處理方法要求我們要利用另外一個線性空間保留以前的括號,并且能夠更新(就是比對--匹配--消失)。這時我們容易想到用一個數組(足夠長,以便存放所有的數據),并且用一個整數P指向(其實就是記錄)已經使用的數組(因為我們是線性掃描的,所以在一步一步輸入括號串的時候是逐步向這個數組里面添加數據的)末尾,有新數據進入,就和末尾的數據匹配對比,如果匹配就一起消失(即那個整數P減少一個單位)。如此工作,直至最后。那么我們繼續剖析這個數組,我們可以發現這個數組只在末端處理數據,就像一個餅干袋子,我們吃放都是在一邊進行的(如果有人吃餅干,袋子兩邊都開的話,招呼一聲--還有人跟我一樣--不過我是餅干吃了一半以后再開另外一邊);還有一種形象的比喻是,使用的時候模式就是彈夾的模式。其實這種結構就是那個所謂的棧數據結構。
??????????????? ?
我們定義push(object) 將object壓入棧中,pop()彈出棧頂元素,作為返回值.

clear??the?stack
n:
= 1
repeat
?????????c?:
= ?expression[n]
?????????
if ???c = ' ) ' ??then
????????????????d?:
= ?pop()
????????????????
if ??not??d = ' ( ' ??then
???????????????????????push(d)
???????????????????????push(c)
????????n:
= n + 1
until??n
> length[expression]
return ?stack
?

以上是操縱的偽代碼,這里需要注意,我們用兩個線性空間存儲數據(一個是存儲所有的待掃描括號,另外一個是用來模擬棧操作的)。
關于stack的具體實現可以查看相關文檔,JAVA里面有這個類大家可以直接用。

然后就是一些繁瑣的分類情況了
?????? a.操作符(包括+-*/^)不能兩個一起連續出現
?????? b.類似于? '('+'操作符' 不能出現(到后面我們是允許減號出現的,因為它可以被理解為負號)?
這些東西很繁瑣,寫文章的時候我在進一步完善這一部分。

好了以上就是結構的檢查部分了。
在這里我們學習了一種數據結構--棧。關于棧的詳細討論任何一本數據結構書中都有詳細說明,大家自己去查閱。

在這里提一個問題:現在有2n+1個數字,其中我們知道有一個數字它出現的次數>=n+1,我們希望通過一次掃描來源數據來找出這個數字,有什么辦法可以解決呢?Please use the stack.It can help you solve this problem.

計算器制作JAVA版(第二步,表達式結構檢查)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎永久免费地址ww 41.6 | 学院传说之三生三世桃花缘 | 国产亚洲精品久久久久久国模美 | 九九热视频这里只有精品 | 日韩区在线 | 五月天婷婷基地 | 欧美一区二区三区 | 99视频网站 | 站长推荐国产午夜免费视频 | 精品一区二区三区在线观看l | 精品国产不卡一区二区三区 | 91久久久久久久久久久久久久 | 亚洲精品一区二区深夜福利 | 亚洲免费网 | av福利在线观看 | 久久精品道一区二区三区 | 欧美在线黄 | 人人干操| 国产成人小视频 | 91精品视频免费在线观看 | 欧美日韩一区,二区,三区,久久精品 | 亚洲国产精品一区二区三区久久 | 欧美在线成人影院 | 久久国产免费福利永久 | 久久天堂色 | 99精品视频在线 | 日韩中文字 | 久久国产精品毛片 | 日本aⅴ在线观看 | 午夜在线小视频 | 亚洲一区二区三区四区五区中文 | 日韩专区在线观看 | a视频在线观看 | 国产精品美女久久久 | 日韩美女一区二区三区在线观看 | 欧美日韩在线免费 | 人人草人人干 | 免费观看一级特黄欧美大片 | 成人欧美在线观看免费视频 | 色性综合 | 亚洲人人精品 |