PAT 1020. Tree Traversals

题目:http://pat.zju.edu.cn/contests/pat-a-practise/1020

题解:

题意就是给一个二叉树的后序和中序,然后确定这棵二叉树,然后层序输出这棵树。

主要思路就是通过后序去确定根root,因为后序中根root肯定是在最后一个的,然后通过找到的根root去把中序的划分成两部分,左边的是根root的左子树,右边的是根root的右子树,再递归左子树和右子树。最终确定二叉树的逻辑结构。

代码:

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct point
{
    int left,right;
}num[35];
queue q;
vector ans;
int buildTree(int a[],int b[],int n)
{
    if(n<=0) return -1;
    int root=a[n-1];
    num[root].left=-1;
    num[root].right=-1;
    int i;
    for(i=0;i

来源: http://blog.csdn.net/acm_ted/article/details/19937535

你可能感兴趣的:(PAT)