顯示具有 datastructure 標籤的文章。 顯示所有文章
顯示具有 datastructure 標籤的文章。 顯示所有文章

2010年12月15日 星期三

程式中運算式的寫法 分為 中序 前序 後序

程式中運算式的寫法,依照 運算子 與 運算元 擺放的先後,可區分為三類
(+,-.*./  AND OR > < 是運算子operator , 變數 a,B,C...  及常數9 都算是 運算元operand)

  1. Prefix:前序法 , 運算子在前 譬如 +AB+  , *+AB+CD
  2. Postfix:後序法 , 運算子在後 譬如 AB+  ,AB+CD-
  3. Infix:中序法 , 運算子在中 譬如 A+B , (A+B)*(C+D)
中序缺點: 有複雜的括號與運算浮號的優先權問題,電腦編譯器處理比較麻煩
後序法: 電腦常用 只用到一個 堆疊暫存器
前序法:  用到兩個 堆疊暫存器


中序 -> 前序 : 要訣: 把離運算子最近的前(左邊)的括號先換掉,
              (6+(2*9) ) ->  +6*29
                          步驟: 1.把所有的運算元連同運算子外加括號
                                         (這一步很重要 很多書都沒提
到)
                                     2.開始脫掉左括號(用最鄰近的右邊運算子代替)
                                     3.把所有右括號拿掉.






stack 的五種基本運算

Stack 有五種基本運算,其實很好記

  1. Create : 第一步當然是創建一個Stack
  2. Phsh   :
  3. Pop   :
  4. Empty:當然如果是空的,就沒辦法Pop了.如果是空的要傳回1
  5. Full : 如果滿了也無法Push
Stack可以用 陣列 跟 串列 來實作
  1. 陣列 : 缺點-因為stack是動態的,所以無法事先規畫適當的大小.
               優點-設計的演算法好做
  2. 串列:  缺點-不好做,演算法比較複雜
               優點-可以隨時改變串列常度




堆疊的應用範例 :

  1. CPU動作
  2. 運算式的處理
  3. 副程式的呼叫


Code
web analytics