#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...