DS二叉树–基于数组存储的构建
题目描述
任意二叉树可以根据完全二叉树性质保存在一个数组中。已知二叉树的数组存储,用程序构建该二叉树。
提示:用递归方法或非递归都可以
输入
第一行输入一个整数t,表示有t个测试数据
第二行起输入二叉树的数组存储结果,空树用字符‘0’表示,输入t行
数组的数据由大写字母和0表示
输出
逐行输出每个二叉树的先序遍历结果
输入样例:
3
ABC0D
ABCDEF000G
ABEC0F0D0
输出样例:
ABDC
ABDEGCF
ABCDEF
参考代码:
#include <iostream>
#include <stack>
#include <vector>
#include <queue>
#include <list>
using namespace std;
string str;
void pre_order(int i) {
if (i >= str.length() || str[i] == '0'){
return;
} else {
cout << str[i];
pre_order(2 * i + 1);
pre_order(2 * i + 2);
}
}
int main() {
int T;
cin >> T;
while (T--) {
cin >> str;
pre_order(0);
cout << endl;
}
return 0;
}