A1020-Tree Traversals

主要还是建树那里比较绕吧,多看看,bfs没什么难度

#include
using namespace std;
struct node
{
    int data;
    node* left;
    node* right;
};
vector in,post;
int N;
node* create(int inL,int inR,int postL,int postR)
{
    if(postL>postR)
        return NULL;
    node *root=new node;
    root->data=post[postR];
    int i; 
    for(i=inL;ileft=create(inL,i-1,postL,postL+numLeft-1);
    root->right=create(i+1,inR,postL+numLeft,postR-1);
    return root;
}
    
    
void BFS(node *root)
{
    int num=0;
    queue Q;
    Q.push(root);
    while(!Q.empty())
    {
        node *tmp=Q.front();
        Q.pop();
        printf("%d",tmp->data);
        num++;
        if(numleft) 
            Q.push(tmp->left);
        if(tmp->right)
            Q.push(tmp->right); 
    }
    
}

int main()
{
    
    scanf("%d",&N);
    int inorder;
    int postorder;
    for(int i=0;i

你可能感兴趣的:(A1020-Tree Traversals)