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;
以上是关于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