PAT (Advanced Level) 1099 Build A Binary Search Tree (30)
来源:互联网 发布:js 变量的长度 编辑:程序博客网 时间:2024/06/05 18:33
题目:https://www.patest.cn/contests/pat-a-practise/1099
题意:给出二叉搜索树上点之间的关系,即每个点从0到n-1编号,给出的它的两个子节点,没有用-1表示。然后给出数量等于二叉树点数的数,把这些数正确的放到给定的二叉搜索树上,按层次遍历输出二叉搜索树
思路:已知二叉搜索树的中序遍历就是一个从小到大的序列,于是可以把给的数从小到大排序,然后中序遍历二叉树,遍历到每个点时赋值即可。最后层次输出就好了
#include <bits/stdc++.h>using namespace std;const int N = 110;struct node{ int l, r, v;}g[N];int arr[N];int res[N], k;void dfs1(int v, int &cnt) //中序遍历赋值{ if(v != -1) { dfs1(g[v].l, cnt); g[v].v = arr[cnt++]; dfs1(g[v].r, cnt); }}void bfs(int v) //层次遍历{ queue<int> que; que.push(v); while(! que.empty()) { int v = que.front(); que.pop(); res[k++] = g[v].v; if(g[v].l != -1) que.push(g[v].l); if(g[v].r != -1) que.push(g[v].r); }}int main(){ int n, a, b; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d %d", &a, &b); g[i].l = a, g[i].r = b; } for(int i = 0; i < n; i++) scanf("%d", arr + i); sort(arr, arr + n); int cnt = 0; dfs1(0, cnt); k = 0; bfs(0); for(int i = 0; i < k; i++) printf("%d%c", res[i], i == k - 1 ? '\n' : ' '); return 0;}
0 0
- PAT (Advanced Level) 1099 Build A Binary Search Tree (30)
- 【PAT】【Advanced Level】1099. Build A Binary Search Tree (30)
- PAT (Advanced Level) Practise 1099 Build A Binary Search Tree (30)
- PAT (Advanced Level) Practise 1099 Build A Binary Search Tree (30)
- Pat(Advanced Level)Practice--1099(Build A Binary Search Tree )
- 1099. Build A Binary Search Tree (30)【二叉树】——PAT (Advanced Level) Practise
- PAT (Advanced Level) 1099. Build A Binary Search Tree (30) 中序遍历往BST中填数据
- pat 1099 Build A Binary Search Tree
- PAT 1099 Build A Binary Search Tree
- PAT (Advanced Level) Practise 1064 Complete Binary Search Tree (30)
- PAT (Advanced Level) Practise 1064 Complete Binary Search Tree (30)
- 【PAT】【Advanced Level】1064. Complete Binary Search Tree (30)
- PAT 1099-Build A Binary Search Tree (30)
- PAT A 1099. Build A Binary Search Tree (30)
- PAT(A) - 1099. Build A Binary Search Tree (30)
- PAT(A)-1099. Build A Binary Search Tree (30)
- PAT-A-1099. Build A Binary Search Tree (30)
- PAT 1099. Build A Binary Search Tree
- Qt之保持GUI响应
- InstallShield Limited Edition for Visual Studio 2013 图文教程
- 动态代理实现数据库连接池功能(代理Connection的close方法)
- (第14讲)哈希表的开放地址法中的二次探测
- uva465 - Overflow
- PAT (Advanced Level) 1099 Build A Binary Search Tree (30)
- android音乐播放器开发在线加载歌词
- 基于Ubuntu交叉编译FFmpeg Windows SDK
- dialog属性参数
- [数学 高精度] HDU 5241 Friends
- Caused by: java.lang.OutOfMemoryError: PermGen space
- java实现潜艇大战游戏之Java swing图形界面开发游戏项目潜艇大战源码及实现方式详解
- iOS开发进阶
- struts一些知识点总结