在數據結構中,我按順序進行轉換並將公式轉換預先排序爲樹。但是,我對後期訂單不太滿意。公式的後序遍歷
對於給定的公式x y z + a b - c */-
我想出了
- / \ * /(divide) /\ /\ x + - c /\ /\ y z a b
在大多數情況下,這似乎符合,除了在左子樹的*屬於百搭甲板。在後序遍歷中,最後一個字符是樹的頂部節點,其他所有分支都向下。現在我將/和*運算符表示它們應該位於相對的節點上。但是,遍歷樹時,除*之外的所有東西都適合,因爲左邊的子樹必須先處理根節點之前的節點,然後切換到右邊的子樹。
讚賞正確的方向輕推。
謝謝,該解決方案似乎是最合適的。我在x(y + z)((a-b)* c)後迷路了,不知道如何放置最後兩個運算符。 – Jason 2010-10-14 10:37:35