QWQ
查看原帖
QWQ
752429
sutianyi楼主2023/7/14 11:22

3WA 2RE

#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdio>
#include <algorithm>
#include <stack>
using namespace std;
struct node{
	char value;
	int lchild,rchild;
}data[101];
char hou[101],in[101];
int cnt = 0;
int create(int hL,int hR,int iL,int iR,int bt){
	if(hL > hR || iL > iR)	bt = 0;
	else{
		cnt++;   bt = cnt;
		int m;
		for(int i = iL;i <= iR;i++){
			if(hou[hR] == in[i]){
				m = i;	break;
			}
		} 
		data[bt].value = in[m];
		int len = m - iL;
		data[bt].rchild = create(hL+len, hR-1, len+1, iR,bt);
		data[bt].lchild = create(hL,hL+len-1, iL,len-1,bt);
	}
	return bt;
} 

void pre(int bt){
	if(bt){
		cout << data[bt].value;
		pre(data[bt].lchild);
		pre(data[bt].rchild);
	}
}
int main(){
	cin >> hou >> in;
	int n = strlen(hou);
	swap(hou,in);
	int root = create(0,n-1,0,n-1,0);
    for(int i=0;i<=n;i++){
        cout << data[i].value << data[i].lchild << data[i].rchild << endl;
    }
	pre(root); 
	return 0;
}

求dalao找false

2023/7/14 11:22
加载中...