01/10/2018, 13:26
Chuyển biểu thức về hậu tố và tiền tố
Chào mọi người, em mới học C++ và có bài tập là chuyển biểu thức về dạng tiền tố và hậu tố. Em đã chuyển sang đươc hậu tố rồi ạ, còn tiền tố thì chưa biết làm như nào. Mong mọi người chỉ bảo.
Và đây là đoạn code chuyển sang hậu tố của em:
void hauTo(){ // chuyen bthuc trung to sang hau to.
stack<char> s;
string str, str1 = "";
int i = 0;
cout<<"Nhap bieu thuc: ";
getline(cin, str);
while( i < str.length() ){
char c = str.at(i);
if( c != ' ' ){
if( c - '0' >= 0 && c - '0' <= 9 || isalpha(c) ) str1 += c;
else{
cout<< str1 << " ";
str1 = "";
if( c == '(') s.push(c);
else{
if( c == ')') {
while( s.top()!= '('){
cout<< s.top();
s.pop();
}
if(s.top() == '(' ) s.pop();
}
else{
while( !s.empty() && uT(c) <= uT(s.top())){
cout<< s.top();
s.pop();
}
s.push(c);
}
}
}
}
i++;
}
if( str1 != "" ) cout<< str1 << " ";
while(!s.empty()){
if(s.top()!= '(') cout<< s.top();
s.pop();
}
}
Bài liên quan
Cho ví dụ và kết quả mong muốn đi bạn
đề bài là nhập biểu thức kiểu xâu, chuyển thành hậu tố và tiến tố và tính giá trị biểu thức bác ạ. Phần hậu tố thì em làm được như trên, còn phần tiền tố thì chưa biết làm ntn ạ