基於表示式求值(棧
表示式樹,先,中,後序遍歷對應,表示式前,中,字尾表示式
葉子對應數
根對應兩個數相操作
所以樹中節點對應原來的數棧
改一改就行
至於求值,左子樹值(根 操作)右子樹值,遞迴求
#include #include #include using namespace std;
int stn[100],tpn,tpa;
char sta[100];
typedef struct node
}*tnode;
tnode stt[100];
int tpt;
bool cmp(char a,char b)
int calc(int a,char opt,int b)
void print()
void out()
void build(char *s,int len) else if (c == ')') else if (c == '(') else
// print();
} while(tpa)
}int tra(tnode t)
int main()
棧 二叉樹 表示式 表示式樹 表示式求值
總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入 輸入...
表示式求值 表示式轉二叉樹
1 後序表示式求值 後續表示式 逆波蘭式 的特點 沒有括號。求值方法 從前向後掃,遇到運算元壓棧 遇到操作符,從棧中取出2個運算元運算,結果壓棧。最終棧中所剩的數為結果。2 中序表示式求值 我們先來定義運算子的優先順序 從上到下依次公升高 準備2個棧,乙個專門存放運算子,另乙個專門存放運算元。1.遇...
二叉樹的應用 表示式樹
假設 對於乙個運算表示式,只考慮2元運算 如加減乘除 和 運算元,我們就可以用乙個二叉樹去儲存這個表示式 用葉子結點儲存運算元,內部結點儲存運算子,這樣的二叉樹就是乙個表示式樹。由於運算子都是二元的,則這個樹實質也是乙個滿二叉樹。先序遍歷表示式樹,得到的是字首表示式 波蘭表示式 中序遍歷表示式樹,得...