nyoj 257 鬱悶的C小加(一) 表示式求值

2021-06-25 23:19:15 字數 664 閱讀 5783

遞迴建立乙個個表示式樹。

例如:1*1+2*2;+  的左子樹為根為1的樹;+ 的右子樹為根為2的樹;* / 優先順序高先建樹 + -優先順序低後建樹

中序遍歷計算結果

#include#include#includechar str[2000];

int len;

struct nodef[1020];

int y[1020];//標記 讓每個運算子只建一次樹

int find_set(int loc)//找到代表節點

void merge(int i)//合併前一位的樹和後一位的樹

void settree(int start)

//找的前括號遞迴並標記

if(str[i]==')'&&y[i]==1)

//找到未標記後括號跳出迴圈

} for(i=start;i<=finish;i++) }

for(i=start;i<=finish;i++) }

}void output(int root)//後序輸出

{ if(f[root].left!=-1)

output(f[root].left);

if(f[root].right!=-1)

output(f[root].right);

if(root>0&&root

nyoj 257鬱悶的c小加(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 我們熟悉的表示式如a b a b c d 等都屬於中綴表示式。中綴表示式就是 對於雙目運算子來說 操作符在兩個運算元中間 num1 operand num2。同理,字尾表示式就是操作符在兩個運算元之後 num1 num2 ope...

NYOJ 257 鬱悶的C小加(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 我們熟悉的表示式如a b a b c d 等都屬於中綴表示式。中綴表示式就是 對於雙目運算子來說 操作符在兩個運算元中間 num1 operand num2。同理,字尾表示式就是操作符在兩個運算元之後 num1 num2 ope...

nyoj257鬱悶的c小加(一)(棧和佇列)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 我們熟悉的表示式如a b a b c d 等都屬於中綴表示式。中綴表示式就是 對於雙目運算子來說 操作符在兩個運算元中間 num1 operand num2。同理,字尾表示式就是操作符在兩個運算元之後 num1 num2 ope...