• 1043 Is It a Binary Search Tree (25 分)(二叉查找树)


    #include<bits/stdc++.h>
    
    using namespace std;
    typedef struct node;
    typedef node *tree;
    struct node
    {
        int data;
        tree L,R;
    };
    void Insert(tree &bt,int x)
    {
        if(bt==NULL){
            bt=new node;
            bt->data=x;
            bt->L=NULL;
            bt->R=NULL;
            return;
        }
        if(x<bt->data) Insert(bt->L,x);
        else Insert(bt->R,x);
    }
    vector<int>pre1,pre2,post1,post2;
    void preorder1(tree bt,vector<int>&p)
    {
        if(bt){
            p.push_back(bt->data);
            preorder1(bt->L,p);
            preorder1(bt->R,p);
        }
    }
    void preorder2(tree bt,vector<int>&p)
    {
        if(bt){
            p.push_back(bt->data);
            preorder2(bt->R,p);
            preorder2(bt->L,p);
    
        }
    }
    
    void postorder1(tree bt,vector<int>&p)
    {
        if(bt){
            postorder1(bt->L,p);
            postorder1(bt->R,p);
            p.push_back(bt->data);
        }
    }
    
    void postorder2(tree bt,vector<int>&p)
    {
        if(bt){
            postorder2(bt->R,p);
            postorder2(bt->L,p);
            p.push_back(bt->data);
        }
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        tree bt;
        bt=NULL;
        vector<int>tt;
        for(int i=0;i<n;i++){
            int x;
            scanf("%d",&x);
            tt.push_back(x);
            Insert(bt,x);
        }
        preorder1(bt,pre1);
        preorder2(bt,pre2);
        postorder1(bt,post1);
        postorder2(bt,post2);
        if(tt==pre1){
            puts("YES");
            for(int i=0;i<post1.size();i++){
                if(i) printf(" ");
                printf("%d",post1[i]);
            }
        }
        else if(tt==pre2){
            puts("YES");
            for(int i=0;i<post2.size();i++){
                if(i) printf(" ");
                printf("%d",post2[i]);
            }
        }
        else{
            puts("NO");
        }
        return 0;
    }
  • 相关阅读:
    Python Turtle
    Python 键盘记录
    Django框架学习
    MongoDB数据库安装与连接
    Python 进程间通信
    Powershell脚本执行权限
    Python 端口,IP扫描
    Exchange超级实用命令行
    Exchange管理界面
    window7 配置node.js 和coffeescript环境
  • 原文地址:https://www.cnblogs.com/chenchen-12/p/10085214.html
Copyright © 2020-2023  润新知