完全二叉树 由后序遍历求层序遍历
int p[300], num[300], cur, n; void dfs(int x) { if(x > n) return; dfs(2 * x); dfs(2 *x + 1); p[++cur] = x; //p[i] 表示后序第i个结点是层次遍历的第p[i]个结点 } int main() { cin>>n; //结点数量 dfs(1); for(int i = 1; i <= n; i++) //读入后序遍历 { int tmp; cin>>tmp; num[p[i]] = tmp; } for(int i = 1; i <= n; i++) //输出层次遍历 cout << num[i] << endl; }