系列首篇,確立目標:打造如 SQL 查詢分析器般的計算器,支援直接輸入表達式、多行/選取運算、錯誤定位。核心思路:將表達式轉為二元運算樹,根節點為最後執行的運算子,葉節點為運算元。
以 5*3+12/4-8/2 為例:
5*3=15、12/4=3、8/2=4。15+3=18、18-4=14。
根節點為減號(-),左子樹為加號(+),右子樹為除號(/)。葉節點皆為數值。求值過程為後序遍歷:先算葉節點向上傳遞值,根節點最後得到最終結果。

實際程式運行截圖展示輸入介面、語法樹視圖、計算結果。
完整原始碼已開放下載,歡迎參考改良。