- #include
- using namespace std;
- const int N=110;
- int l[N],r[N],w[N];
- int a[N];
- //a是指原序列
- //w是维护二叉搜索树每个点的权值
-
-
- //用中序遍历遍历二叉搜索树
- void dfs(int u,int &k)
- {
- if(u==-1) return;
- dfs(l[u],k);
- w[u]=a[k++];
- dfs(r[u],k);
- }
-
- void bfs()
- {
- queue<int> q;
- q.push(0);
-
- while(!q.empty())
- {
- auto t=q.front();
- q.pop();
-
- cout<
" "; -
- if(l[t]!=-1)
- q.push(l[t]);
-
- if(r[t]!=-1)
- q.push(r[t]);
- }
-
- }
-
-
- int main()
- {
- int n;
- cin>>n;
-
- for(int i=0;i
- {
- cin>>l[i]>>r[i];
- }
-
- for(int i=0;i
- {
- cin>>a[i];
- }
-
- sort(a,a+n);
-
- int k=0;
-
- dfs(0,k); //按照中序遍历遍历二叉树
-
- bfs();
-
- return 0;
- }
-
相关阅读:
树莓派4B_OpenCv学习笔记21:OpenCV_haar人脸识别
redis 实现互相关注功能
Windows 应用程序监控重启
nextTick 使用场景
Spring-依赖注入
关于mysql的一些知识点及面试问题
【LeetCode】回溯题解汇总
动态树的最值
并发bug之源(二)-有序性
Loj#3320-「CCO 2020」旅行商问题
-
原文地址:https://blog.csdn.net/bei2002315/article/details/127576267