码迷,mamicode.com
首页 > 其他好文 > 详细

第五周训练 | 二叉树+线段树

时间:2019-12-08 10:40:35      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:type   span   二叉树   using   mil   while   线段树   main   value   

A - Binary Tree Traversals

记一个模板

#include<iostream>
using namespace std;
typedef struct Tree{
    Tree *left;
    Tree *right;
    int value;
}Tree;
 
Tree *root;
 
 
Tree* create(int *preorder,int *inorder,int n)
{
    Tree *temp;
    for(int i=0;i<n;i++)
    {
        if(preorder[0]==inorder[i])
        {
            temp=(Tree*)malloc(sizeof(Tree));
            temp->value=inorder[i];          
            temp->left=create(preorder+1,inorder,i);
            temp->right=create(preorder+i+1,inorder+i+1,n-i-1);
            return temp;
        }
 
    }
    return NULL;
}
 
void postOrder(Tree *postTree)
{
    if(postTree!=NULL)
    {
        postOrder(postTree->left);
        postOrder(postTree->right);
        if(postTree==root)
            printf("%d\n",postTree->value);
        else
            printf("%d ",postTree->value);
    }
}
 
int main()
{
    int n;
    int preorder[2010],inorder[2010];
    while(scanf("%d",&n)!=EOF)
    {
        root=NULL;
        for(int i=0;i<n;i++)
            scanf("%d",&preorder[i]);
        for(int i=0;i<n;i++)
            scanf("%d",&inorder[i]);
        root=create(preorder,inorder,n);
        postOrder(root);
 
    }
    return 0;

  

第五周训练 | 二叉树+线段树

标签:type   span   二叉树   using   mil   while   线段树   main   value   

原文地址:https://www.cnblogs.com/chrysanthemum/p/12004641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!