前/中/字尾表示式的轉換
自然表示式轉換為前/中/字尾表示式,其實是很簡單的。首先將自然表示式按照優先順序順序,構造出與表示式相對應的二叉樹,然後對二叉樹進行前/中/字尾遍歷,即得到前/中/字尾表示式。
舉例說明將自然表示式轉換成二叉樹:
a×(b+c)-d
① 根據表示式的優先順序順序,首先計算(b+c),形成二叉樹
②然後是a×(b+c),在寫時注意左右的位置關係
③最後在右邊加上-d
然後最這個構造好的二叉樹進行遍歷,三種遍歷的順序分別是這樣的:
① 前序遍歷:根-左-右
②中序遍歷:左-根-右
③後序遍歷:左-右-根
所以還是以剛才的這個例子,在最終二叉樹的基礎上可以得出:
字首表示式:-*a+bcd
中綴表示式:a*b+c-d
字尾表示式:abc+*d-
一些其他的遍歷原則:
1、深度優先遍歷:
2、廣度優先遍歷:
首先訪問出發頂點v,然後訪問與頂點v鄰接的全部未被訪問過的頂點w0,w1,...wk-1;接著再依次訪問與頂點w0,w1,...wk-1鄰接的全部未被訪問過的頂點,以此類推,直至圖的所有頂點都被訪問到,或出發頂點v所在的連通分量的全部頂點都被訪問到為止。
注:對於樹來說,深度優先就是從左到右,從上到下;廣度優先就是從上到下,從左到右。
**問題,請見相簿
-the end-
前,中,字尾表示式
字首表示式,中綴表示式,字尾表示式都是四則運算的表達方式,用以四則運算表示式求值,即數學表示式的求值。比如乙個簡單的數學表示式 1 2 3 4 這是我們常見的數學表示式型別 即中綴表示式 為什麼要將簡單的中綴表示式轉化為複雜的波蘭式或逆波蘭式 原因在於,簡單的中綴表示式在用人的思維邏輯來看,確實簡單...
前 中 字尾表示式
1 字首表示式又稱波蘭式,字首表示式的運算子位於運算元之前 2 舉例說明 3 4 5 6 對應的字首表示式就是 3 4 5 6 從右至左掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 棧頂元素 和 次頂元素 並將結果入棧 重複上述過程直到表示式最左...
表示式的前中字尾表示和表示式運算
一 將自然表示式轉換為前 中 字尾表示式,首先按照自然表示式中運算元和操作符的優先順序順序構造出表示式對應的二叉樹,然後對二叉樹進行前序 中序 後序遍歷,即得到前 中 字尾表 達式 二 一些其他的遍歷原則 1 深度優先遍歷 2 廣度優先遍歷 首先訪問出發頂點v,然後訪問與頂點v鄰接的全部未被訪問過的...