求助,为什么没有输出?
查看原帖
求助,为什么没有输出?
1409696
LXN1q2w3e楼主2024/8/6 13:21

这破代码是一天也不想写了

C++语言

求大佬指点

#include<bits/stdc++.h>
using namespace std;

char ch[1100];
int n;

struct TreeNode
{
	char v;
	TreeNode *l,*r;
	TreeNode(char x): v(x),l(NULL),r(NULL) {}
};

TreeNode *BuildTree(int left,int right)
{
	if(left>right)
	{
		return NULL;
	}
	int cnt0=0,cnt1=0;
	for(int i=left;i<=right;i++)
	{
		if(ch[i]=='0') cnt0++;
		else cnt1++;
	}
	char val;
	if(cnt0==right-left+1)  val='B';
	if(cnt1==right-left+1)  val='I';
	if(cnt0>0&&cnt1>0)      val='F';
	TreeNode *root=new TreeNode(val);
	if((right+left)/2>left)     root->l=BuildTree(left,(right+left)/2);
	if((right+left)/2+1<right)  root->r=BuildTree((right+left)/2+1,right);
}

void postorder(TreeNode *root)
{
	if(root!=NULL)
	{
		cout<<root->v;
		postorder(root->l);
		postorder(root->r);
	}
}

int main()
{
	scanf("%d  %s",&n,&ch);
	int len=strlen(ch);
	TreeNode *root=BuildTree(0,len-1);
	postorder(root);
	return 0;
}
2024/8/6 13:21
加载中...