1099 Build A Binary Search Tree [二叉搜索树/中序层次遍历]

Posted fta-macro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1099 Build A Binary Search Tree [二叉搜索树/中序层次遍历]相关的知识,希望对你有一定的参考价值。

先用中序确定节点的值,再用层次遍历输出即可。

写的时候思维江化,一开始用指针建树。。。

技术图片
#include <bits/stdc++.h>
using namespace std;
#define maxn 105

struct Node

    int index,left,right;
node[maxn];
int n,a[maxn],tree[maxn];
vector<int> ve[maxn],in,post;
void inorder(int p)

    if(node[p].left!=-1)
        inorder(node[p].left);
    in.push_back(node[p].index);
    if(node[p].right!=-1)
        inorder(node[p].right);

void bfs()

    cout<<tree[0];
    queue<int> q;
    q.push(0);
    while(!q.empty())
    
        int t=q.front();
        q.pop();
        if(t>0)
            cout<<" "<<tree[t];
        if(node[t].left!=-1)
            q.push(node[t].left);
        if(node[t].right!=-1)
            q.push(node[t].right);
    
    cout<<endl;

int main()

    int l,r;
    cin>>n;
    for(int i=0;i<n;i++)
    
        cin>>l>>r;
        node[i].index=i;
        node[i].left=l;
        node[i].right=r;
    
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    inorder(0);
    for(int i=0;i<n;i++)
        tree[in[i]]=a[i];
    bfs();
    return 0;
View Code

 

以上是关于1099 Build A Binary Search Tree [二叉搜索树/中序层次遍历]的主要内容,如果未能解决你的问题,请参考以下文章

PAT1099:Build A Binary Search Tree

PAT 甲级 1099 Build A Binary Search Tree

PAT Advanced 1099 Build A Binary Search Tree (30分)

1099. Build A Binary Search Tree (30)二叉树——PAT (Advanced Level) Practise

PAT-1099(Build A Binary Search Tree)

1099. Build A Binary Search Tree (30)二叉树——PAT (Advanced Level) Practise