文章

60

粉丝

361

获赞

43

访问

527.7k

头像
递归大法
P1401 华中科技大学/中国科学院2017机试题
发布于2021年1月19日 15:56
阅读数 8.3k

1、前序遍历的第一元素是整个二叉树的根节点

2、中序遍历中根节点的左边的元素是左子树,根节点右边的元素是右子树

3、后序遍历的最后一个元素是整个二叉树的根节点

#include <iostream>
#include <string>
#include <string.h>
using namespace std;

void postorder(string preorder ,string midorder)
{
	if(preorder.size()==0)
		return;
	char root=preorder[0];
	int index=midorder.find(root);
	string preorderleft=preorder.substr(1,index);//下一个前序的左子树
	string preorderright=preorder.substr(index+1);//下一个前序的右子树
	string midorderleft=midorder.substr(0,index);//下一个中序的左子树
	string midorderright=midorder.substr(index+1);//下一个中序的右子树
	postorder(preorderleft,midorderleft);
	postorder(preorderright,midorderright);
	cout<<root;
}

int main()
{
	string preorder,midorder;
	while(cin>>preorder>>midorder)
	{
		postorder(preorder ,midorder);
		cout<<endl;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

1 条评论
Cookie‘s AE86
2024年3月26日 09:12

简单明了yes

赞(0)