اینجا کد برنامه اش به جاوا نوشته شده ولی تبدیل عبارت prefix به postfix هستش!!!
اینجا هم یه کد دیگه هست به C++ این بهتره
من که ازش چیزی سر در نیاوردم!!!!!
شما کتاب ساختمان داده ی مقسمی رو ندارید؟؟ کامل توضیح دادش!
من خیلی بلد نیستم مطلبی رو توضیح بدم!
اینم کد من. الگوریتم اصلی با عملگر کار میکنه ولی الگوریتم من با عملوند!!!
PHP:
#include<iostream>
#include<conio.h>
#include <stdio.h>
#include <stdlib.h>
#include<string>
using namespace std;
const int max = 40;
const int len = 80;
/////////////////////
class stack{
private:
char st[5];
int top;
public:
stack(){
top=0;
}
void push(char var){
st[++top]=var;
}
char pop(){
return st[top--];
}
/*int gettop(){
return top;
} // daghighan chi mikone??*/
}; //end class stack
class express{
private:
stack s;
char *pstr;
int len;
public:
express(char *ptr){
pstr = ptr;
len = strlen(pstr);
}
void parse();
}; //end class
void express::parse(){
char ch;
char ch1;
char ch2;
char final;
for(int j=0;j<len;j++){
ch = pstr[j];
if(ch!='+'||ch!='-'||ch!='*'||ch!='/'||ch!='^'||ch!='++'||ch!='--'){
//s.push(ch);
if(j>3){
s.pop();
ch1=s.pop();
if(ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/'||ch1=='^'||ch1=='++'||ch1=='--'){
s.push(ch1);
s.push(ch);
}
else if(ch1!='+'||ch1!='-'||ch1!='*'||ch1!='/'||ch1!='^'||ch1!='++'||ch1!='--'){
s.pop();
ch2=s.pop();
if(ch2=='+'||ch2=='-'||ch2=='*'||ch2=='/'||ch2=='^'||ch2=='++'||ch2=='--'){
final = ch1+ch2+ch;
cout<<ch1<<ch2<<ch;
}
}
}
else
break;
} //end if amalvand
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='^'||ch=='++'||ch=='--'){
s.push(ch);
} //end else if
} //end for
} //end phare
int main(){
char ans;
char string[len];
do{
cout<< "enter token"<<endl;
cin>> string;
express *eptr= new express(string);
eptr-> parse();
cout<< "the infix value is:"<<endl;
cout<<"do another(enter n or y)"<<endl;
cin>>ans;
}
while(ans=='y');
return 0;
}