1099. Build A Binary Search Tree (30)PAT甲级
2017-02-10 19:13
423 查看
传送门
#include<stdio.h> #include<queue> #include<algorithm> #define MAX_N 110 using namespace std; struct Node{ int data; int lchild,rchild; }node[MAX_N]; int n; int inorder[MAX_N]; int co=0; void inOrder(int root){ if(root==-1){ return ; } inOrder(node[root].lchild); node[root].data=inorder[co++]; //printf("%d",node[root].data); inOrder(node[root].rchild); } void BFS(int root){ queue<int> q; q.push(root); int i=0; while(!q.empty()){ int p=q.front(); q.pop(); printf("%d",node[p].data); i++; if(i!=n) printf(" "); if(node[p].lchild!=-1) q.push(node[p].lchild); if(node[p].rchild!=-1) q.push(node[p].rchild); } } int main(){ scanf("%d",&n); int lchild,rchild; for(int i=0;i<n;i++){ scanf("%d%d",&lchild,&rchild); node[i].lchild=lchild; node[i].rchild=rchild; } for(int i=0;i<n;i++){ scanf("%d",&inorder[i]); } sort(inorder,inorder+n); // for(int i=0;i<n;i++){ // printf("%d",inorder[i]); // } inOrder(0); BFS(0); }
相关文章推荐
- PAT - 甲级 - 1004. Counting Leaves (30)(DFS/BFS,二叉树的遍历)
- PAT甲级 1030. Travel Plan (30)
- PAT - 甲级 - 1080. Graduate Admission (30)(排序)
- PAT - 甲级 - 1014. Waiting in Line (30)(STL-queue)
- 【PAT甲级】1076. Forwards on Weibo (30)
- 1080. Graduate Admission (30) PAT 甲级
- [PAT甲级]1014. Waiting in Line (30)(银行排队办理业务结束时间 队列的应用)
- PAT甲级 1095. Cars on Campus (30)
- 1030. Travel Plan (30) PAT甲级刷题
- PAT 甲级 1076. Forwards on Weibo (30)
- 1119. Pre- and Post-order Traversals (30)-PAT甲级真题(前序后序转中序)
- 1030. Travel Plan (30)-PAT甲级真题
- PAT甲题题解-1107. Social Clusters (30)-PAT甲级真题(并查集)
- pat 甲级 1022. Digital Library (30)
- PAT 甲级 1045. Favorite Color Stripe (30)
- PAT 甲级 1068. Find More Coins (30)
- PAT 甲级 1087. All Roads Lead to Rome (30)
- PAT - 甲级 - 1072. Gas Station (30)(Dijkstra)
- 【PAT甲级】1004. Counting Leaves (30)
- PAT - 甲级 - 1022. Digital Library (30)(STL-map,set)