2006年08月5日

[資結]作業三思考方式

作者: drumrick () 看板: P_Lashai
標題: Re: 第三次作業的參考資料
時間: Fri Aug  4 12:22:35 2006

那個是以後上課要教的東西
由於作業裡面已經規定*/^不會連續出現
所以不用做到前中後續轉換
打個比方

1 + 2 + 3 * 4 - 5 * 4 + 6


我需要一個四格陣列  . . . .
讀四個data  1.+.2.+. 由於加法的優先權一樣
直接算1+2=3  把資料往前移   3.+. . .
再讀兩個 3.+.3.*. 由於乘法優先權大於加法
讀下一個data(4)跟 3 做乘法 以後再跟 3 做加法 15. . . .

這裡說明一下為什麼可以直接做兩個運算
就是因為確定下一個operator一定不會再比加法的優先權高  所以可以安心
說明的有點亂七八糟的

總結

陣列裡只會出現兩個operator有三總情況

高低 -- 只能做前半,因為後面可能還有高優先權  ex:3*5-2*2
低低 -- 只能做前半,因為後面可能還有高優先權  ex:4-2+3*5
以上兩個做完要把陣列往前移阿
低高 -- 可以把兩個部份的計算都完成    ex:4-3*5+8
不過要記得多得一個data,因為這時候陣列還沒有↑這個5

這是一個可怕的演算法
寫出來不是要便宜大家做作業
而是要讓大家去想一想  因為我不知道有沒有bug阿~~
歡迎大家實作看看  順便挑bug


Posted by kevingao814 at 樂多Roodo! │11:02 │回應(0)引用(0)├學知識
樂多分類:日記/一般 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/1976239