二叉树的遍历(没写完)
完全搜索二叉树
题目链接
PTA完全搜索二叉树
1.利用数组实现
2.输入的是中序遍历,记得排序,排完序才是中序
3.输出层序遍历
参考代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
#define ios ios::sync_with_stdio(false);cin.tie(0);
#define x first
#define y second
#define pb push_back
#define INF 0x7fffffff
#define debug(a) cout<<"======"<<a<<"======"<<endl;
#define int long long
typedef pair<int,int> pii;
inline int gcd(int a,int b){return b ? gcd(b, a % b) : a;}
inline int lcm(int a,int b){return a/gcd(a,b)*b;}
const int N = 1e5 + 10;
//const int mod = 998244353;
int dx[4] = {-1,0,1,0};
int dy[4] = {0,1,0,-1};
int n, m, k, t;
int zhong[N];
int ans[N];
void dfs(int i){
if(i > n)
return;
dfs(2*i);//左儿子
t ++;
ans[i] = zhong[t];//层序的核心!!!!!
dfs(2*i + 1);//右儿子
}
void work(){
cin >> n;
for(int i = 1;i <= n;++ i){
cin >> zhong[i];
}
sort(zhong + 1,zhong +n+1);
dfs(1);
for(int i = 1;i <= n;i ++){
if(i != n) cout << ans[i] << " ";
else cout << ans[i];
}
}
signed main(){
ios;
int T = 1;
//cin >> T;
while(T --){
work();
}
return 0;
}
本文作者:Go1NgZCY
本文链接:https://www.cnblogs.com/going-zcy/p/18002205
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步