我真的不|

Go1NgZCY

园龄:1年1个月粉丝:0关注:0

二叉树的遍历(没写完)

完全搜索二叉树

题目链接

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 中国大陆许可协议进行许可。

posted @   Go1NgZCY  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起