回覆列表
  • 1 # 使用者6515447672496

    (1)表示式的三種形式:

    中綴表示式:運算子放在兩個運算物件中間,如:(2+1)*3;

    字尾表示式:不包含括號,運算子放在兩個運算物件的後面,所有的計算按運算子出現的順序,嚴格從左向右進行(不再考慮運算子的優先規則,如:21+3*;

    字首表示式:同字尾表示式一樣,不包含括號,運算子放在兩個運算物件的前面,如:*+213。

    (2)表示式的計算:

    由於字尾表示式中沒有括號,不需判別優先順序,計算嚴格從左向右進行,故計算一個字尾表示式要比計算機一箇中綴表示式簡單得多。

    將中綴表示式轉換為字尾表示式的演算法思想:

    ·當讀到數字直接送至輸出佇列中

    ·當讀到運算子t時,

    a.將棧中所有優先順序高於或等於t的運算子彈出,送到輸出佇列中;

    b.t進棧

    ·讀到左括號時總是將它壓入棧中

    ·讀到右括號時,將靠近棧頂的第一個左括號上面的運算子全部依次彈出,送至輸出佇列後,再丟棄左括號。

    運用字尾表示式進行計算的具體做法:

    ·建立一個棧s

    ·從左到右讀後綴表示式,讀到數字就將它轉換為數值壓入棧s中,讀到運算子則從棧中依次彈出兩個數分別到y和x,然後以“x運算子y”的形式計算機出結果,再壓加棧s中

    ·如果字尾表示式未讀完,就重複上面過程,最後輸出棧頂的數值則為結束

  • 中秋節和大豐收的關聯?
  • 剛出生幾天的嬰兒身上有很多黑色毛髮是什麼問題?