*檔名稱:專案2-用二叉樹求解代數表示式
*作 者:李慶耀
*完成日期:2023年11月7日
*版 本 號:v1.0
* 問題:
用二叉樹來表示代數表示式,
樹的每乙個分支節點代表乙個運算子,
每乙個葉子節點代表乙個運算數(為簡
化,只支援二目運算的+、-、*、/,不
加括號,運算數也只是一位的數字字元。
本專案只考慮輸入合乎以上規則的情況)。
**:
#include #include #include #include "btree.h"
//用s[i]到s[j]之間的字串,構造二叉樹的表示形式
btnode *crtree(char s,int i,int j)
//以下為i!=j的情況
for (k=i; k<=j; k++)
if (s[k]=='+' || s[k]=='-')
if (plus==0) //沒有+或-的情況(因為若有+、-,前面必會執行plus++)
for (k=i; k<=j; k++)
if (s[k]=='*' || s[k]=='/')
//以上的處理考慮了優先將+、-放到二叉樹較高的層次上
//由於將來計算時,運用的是後序遍歷的思路
//處於較低層的乘除會優先運算
//從而體現了「先乘除後加減」的運算法則
//建立乙個分支節點,用檢測到的運算子作為節點值
if (plus!=0)
else //若沒有任何運算子,返回null
return null;
}
double comp(btnode *b)
} int main()
執行結果: 第十周 專案二」用二叉樹求解表示式「
煙台大學計算機學院 完成日期 2017 11 12 include stdio.h include include include btree.h 用s i 到s j 之間的字串,構造二叉樹的表示形式 btnode crtree char s,int i,int j 以下為i j的情況 for k ...
資料結構第十周專案1 二叉樹演算法驗證
作 者 李哲 版 本 號 v1.0 1 層次遍歷演算法的驗證 實現二叉樹的層次遍歷演算法,並對用 a b d,e h j,k l,m n c f,g i 建立的二叉樹進行測試。include include btree.h void levelorder btnode b if p rchild n...
第十周 專案二 用二叉樹求解代數表示式
all right reserved.檔名稱 btree 完成日期 2017年11月9日 版本號 v1.0 問題描述 用二叉樹求解代數表示式 輸入描述 標準函式輸入 程式輸出 代數表示式及其結果 程式中的btree.h,見 二叉樹演算法庫 include include include includ...