爆0求助(RE)
查看原帖
爆0求助(RE)
1255670
xxxasybt2023楼主2024/7/31 17:28

蒟蒻爆0求助,在本地编译器上结果出来了,但莫名其妙地在输出完后卡死了~~哪位dalao能帮帮我

#include <bits/stdc++.h>
using namespace std;
struct node
{
	char value;
	node *lchild,*rchild;
	node(void) :value(0),lchild(nullptr),rchild(nullptr) {}
	node(char c) :value(c),lchild(nullptr),rchild(nullptr) {}
};
class binary_tree
{
public:
	binary_tree(void) :__root(*(new node)) {}
	~binary_tree(void) {cut(root());}
	inline node* root(void) {return &__root;}
	void cut(node *rp)
	{
		if (rp->lchild != nullptr) cut(rp->lchild);
		if (rp->rchild != nullptr) cut(rp->rchild);
		delete rp;
	}
	void build(node *rp,string in,string po)
	{
		char r = po[po.size()-1];
		size_t ri = in.find(r),s = in.size();
		rp->value = r;
		if (ri != 0) 
			rp->lchild = new node,
			build(rp->lchild,in.substr(0,ri),po.substr(0,ri));
		if (ri != s-1)
			rp->rchild = new node,
			build(rp->rchild,in.substr(ri+1,s-ri-1),po.substr(ri,s-ri-1));
	}
	void out_pre(node* q)
	{
		cout<<q->value;
		if (q->lchild != nullptr) out_pre(q->lchild);
		if (q->rchild != nullptr) out_pre(q->rchild);
	}
private:
	node __root;
};
string in,post;
binary_tree t;
signed main()
{
  cin>>in>>post;
  t.build(t.root(),in,post);
  t.out_pre(t.root());
  return 0;
}
2024/7/31 17:28
加载中...