viết giúp mình chương trình c++ cho bài cấu trúc dữ liệu này với:
- Chuyển đổi biểu thức trung tố sang tiền tố
sử dụng cây nhị phân.
- Chuyển đổi biểu thức trung tố sang tiền tố
sử dụng cây nhị phân.
Sửa lần cuối:
#include<iostream>
using namespace std;
#define MAX 100
int count=1;
char e[MAX],b[2*MAX];
bool isOperator(char ch){
return ch=='+' || ch=='-' || ch == '*' ||
ch == '/' || ch == '$' || ch == '%';
}
void left(char,int);
void right(char,int);
void left(char op,int i){
if(isOperator(op)){
b[2*i]=op;
count++;
left(e[count],2*i);
right(e[count],2*i);
}
else
{
b[2*i]=op;
count++;
}
}
void right(char op,int i){
if(isOperator(op)){
b[2*i+1]=op;
count++;
left(e[count],2*i+1);
right(e[count],2*i+1);
}
else
{
b[2*i+1]=op;
count++;
}
}
void postorder(int i){
if(isOperator(b[i]))postorder(2*i);
if(isOperator(b[i]))postorder(2*i+1);
cout << b[i] ;
}
int main(){
cout << "Enter a prefix : ";
cin >> e;
int len=strlen(e);
count=0;
b[1]=e[count];
count++;
left(e[count],1);
right(e[count],1);
postorder(1);
return 0;
}