题解 | #树查找#
树查找
https://www.nowcoder.com/practice/9a10d5e7d99c45e2a462644d46c428e4
#include <iostream> #include <valarray> #include <queue> #include <cstring> #include <stack> using namespace std; int main() { int n; cin>>n; int tree[n+1]; for (int i = 1; i < n+1; ++i) { cin>>tree[i]; } int high; cin>>high; int min= pow(2,high-1); // 需输出的节点的最小编号 int max= pow(2,high); // 需输出的最大节点的 下一个节点的编号 if (min>n){ cout<<"EMPTY"; } for (int i = min; i < max&&i<n+1; ++i) { cout<<tree[i]<<" "; } return 0; }
用数组来存就可以,完全二叉树的节点规律找到就很简单