zoukankan      html  css  js  c++  java
  • PAT1064. Complete Binary Search Tree

    1064. Complete Binary Search Tree

    题目大意

    给定一个序列, 求其 生成Complete BST 的层序遍历.

    思路

    最开始把这个题想复杂了, 还想着建立结构体, 其实用数组最为方便简单

    1. 中序遍历这棵 Complete BST, 依次填入一个排好序的序列.
    2. 因为是数组存放, 所以直接输出 1 - nNode 就好.

    代码

    #include <iostream>
    #include <cstdio>
    #include <vector>
    #include <algorithm>
    #define MAXN 2000
    using namespace std;
    int nNode;
    int curSeq = 0;
    vector<int> seq;
    int arr[MAXN];
    void dfs(int root){
        if(root > nNode)
            return;
        dfs(root << 1);
        arr[root] = seq[curSeq++];
        dfs(root << 1 | 1);
    }
    int main(){
        scanf("%d", &nNode);
        seq.resize(nNode);
        for(int i = 0; i < nNode; i++)
            scanf("%d", &seq[i]);
        sort(seq.begin(), seq.end());
        dfs(1);
    
        for(int i = 1; i <= nNode; i++){
            if(i != 1) printf(" ");
            printf("%d", arr[i]);
        }
        return 0;
    }
    
    
  • 相关阅读:
    2020年12月2日
    2020年12月1日
    2020年11月30日
    2020年11月29日
    2020年11月28日
    2020年11月27日
    2020年11月26日
    2020年11月25日
    浅谈扩展欧几里得算法
    Hello 2020
  • 原文地址:https://www.cnblogs.com/1pha/p/7801095.html
Copyright © 2011-2022 走看看