}
void DispSample() {
cout<<\ if(op=='!') cout<<\ else
cout< DispIndirect(s1); cout<<\ DispIndirect(s2); cout<<\ DispIndirect(s3); cout<<\ } void DispFour() { cout<<\ cout<<\ if(op=='!') cout<<\ else cout< DispIndirect(s1); cout<<\ DispIndirect(s2); cout<<\ DispIndirect(s3); cout<<\ } }*Four; Four four[MAX]; //to store the four equation class stack { int top; int array[MAX]; public: stack(){top=0;} int GetTop() { return array[top-1]; } 25 int Getsize() { return top; } void PushStack(int c) { if(top array[top++]=c; else cout<<\} int PopStack(int temp[],int length) { if(top>=length) { for(int i=0;i temp[i]=array[top-length+i]; } return length; } else { cout<<\ exit(0); } } int GetChar(int pos) { if((pos>=0)&&(pos return 0; } void DispStack() { for(int i=0;i DispItem(array[i]); } if (this->top>5) cout<<'\\t'; else cout<<'\\t'<<'\\t'; 26 top=top-length; } }; stack s; void DispCost() { for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { if(cost[i][j]=='!') cout<<\ else cout< cout< bool IsChar(char c) { if (((c>='a')&&(c<='z')) || (c>='0')&&(c<='9')||((c>='A')&&(c<='Z'))) return true; else return false; } int SearchCost(int i,int j)//set the realiton according to the cost { //0==equal ,1==above,-1==low,2==NULL if(i/100==1) i=4; if(j/100==1) j=4; switch(cost[i][j]) { case '>':return 1;break; case '<':return -1;break; case '=':return 0;break; default:return 2;break; } } int Entry(char ch) { for(int i=1;i 27 return Sp+100; } int NewTemp(int t[3]) { Fp++; four[Fp]=new four_item(t[1],t[0],t[2]); four[Fp]->DispFour(); cout< int CharToDigital(char ch) { int j; for(j=0;j<8;j++) if(ch==cost[0][j]) return j; if(IsChar(ch)) { return Entry(ch); } else return 0; } void DispItem(int i) { if(i<0||i>400) { cout<<\ return ; } if(i<100) { if(i==3) cout<<\ else cout< else if(i<200) { cout< 28 } else if(i<300) { cout<<\ } else cout<<\} void DispIndirect(int i) { if(i<0||i>=400) { cout<<\ return; } if(i<100) { if(i==3) cout<<\ else cout< else if(i<200) { cout< else if(i<300) { DispIndirect(Temp[i-200]); } else cout<<\} int Merge(int *ch,int ll) { s.PopStack(ch,ll); if(ll==1)//the length is 1 { Temp[++Tp]=ch[0]; cout<<\ DispItem(ch[0]); cout<<\ DispItem(Tp+200); cout< 29