表示式二叉樹的建立

2021-09-23 18:33:47 字數 638 閱讀 3066

基於表示式求值(棧

表示式樹,先,中,後序遍歷對應,表示式前,中,字尾表示式

葉子對應數

根對應兩個數相操作

所以樹中節點對應原來的數棧

改一改就行

至於求值,左子樹值(根 操作)右子樹值,遞迴求

#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元運算 如加減乘除 和 運算元,我們就可以用乙個二叉樹去儲存這個表示式 用葉子結點儲存運算元,內部結點儲存運算子,這樣的二叉樹就是乙個表示式樹。由於運算子都是二元的,則這個樹實質也是乙個滿二叉樹。先序遍歷表示式樹,得到的是字首表示式 波蘭表示式 中序遍歷表示式樹,得...