- #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;
- }
-
相关阅读:
javaEE初阶——多线程(八)——常见的锁策略 以及 CAS机制
ABAP VOFM定价过程的例程创建
【应用多元统计分析】上机四&五——主成分分析&因子分析
自定义修改Discuz X3 今日发帖数量 昨日发帖数量 帖子总数 会员总数
Ubuntu下载、安装QGIS软件的方法
程序员开发必备,开发资源资料分享【4】
C#记录日志方法
免费开源的100套Echarts大屏数据可视化模板分享
vue3 render函数使用方式
Go程序内存泄露问题快速定位
-
原文地址:https://blog.csdn.net/bei2002315/article/details/127576267