資料結構第十周專案(二) 用二叉樹

2021-08-13 10:51:34 字數 1004 閱讀 1987

*檔名稱:專案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...