Chuyển đổi biểu thức trung tố sang tiền tố sử dụng cây nhị phân

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.
 
Sửa lần cuối:
Reply: 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...

ai biết viết giúp mình với
 

VSupport

Ngây thơ trong tối
Ca này khó rồi, có bài ngược lại từ tiền tố sang hậu tố thôi nhe bạn :forever-alone:
Mã:
#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;
}
 

Thống kê

Chủ đề
102,787
Bài viết
470,611
Thành viên
340,593
Thành viên mới nhất
winspire
Top