表示式求值問題之表示式樹

2021-06-05 07:55:35 字數 1277 閱讀 9014

#include#include#include#include#define m 1005

#define clr(arr,now) memset(arr,now,sizeof(arr))

using namespace std;

stackshu;

typedef struct node

}*tire,t;

char str[m];

char pre[m],post[m];

int prelen,postlen,pos;

tire build(int l,int r)//建立表示式樹

} int pos=0,optr1=-1,optr2=-1;

for(int i=l;i<=r;++i) }

if(optr1==-1) optr1=optr2;

if(optr1==-1) return build(l+1,r-1);

tire cur=new t;

cur->ope[0]=str[optr1];

cur->ope[1]='\0';

cur->lchild=build(l,optr1-1);

cur->rchild=build(optr1+1,r);

return cur; }

void pre_order(tire root)//中綴轉化為字首式

}void post_order(tire root)//中綴轉化為字尾式

}double pre_calucate()//字首表示式計算

if(pre[pos]=='+') return pre_calucate()+pre_calucate();

if(pre[pos]=='-') return pre_calucate()-pre_calucate();

if(pre[pos]=='/') return pre_calucate()/pre_calucate();

if(pre[pos]=='*') return pre_calucate()*pre_calucate();

}double post_calucate()//字尾表示式計算

else if(post[i]==' ') continue;

else

}double k=shu.top();

shu.pop();

return k;

}void delet(tire root)//銷毀表示式樹

int main()

return 0;

}

表示式 表示式樹 表示式求值

總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...

數算A 表示式 表示式樹 表示式求值

這道題在輸出上太坑了,畫出來不像樹.1 include2 include3 include4 using namespace std 5int val 26 n,len,ans,maxdep 6char infix 55 postfix 55 out 50 300 7 struct node 13 ...

表示式求值問題

這是清華大學鄧俊輝資料結構 c 中的乙個案例,通過使用棧這種資料結構,完成了較為複雜的表示式求值問題,以下 是我整理改編而成,能夠完成加減乘除,乘方 階乘的運算,以及括號的處理。在這裡,我使用到了c stl 中的容器stack。include include include include incl...