给定二叉树的包含虚结点的先序遍历序列信息,按层次顺序给出遍历的结果。
输入格式:首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在一行中输入一个字符串(不含空格且长度不超过80),表示二叉树的先序遍历序列(其中@表示虚结点)。
输出格式:对于每组测试,输出层次遍历的结果。
输入样例:输出样例:1
ABD@@EG@@@C@F@@
ABCDEFG
注:本代码的队列使用的是c++现成的queue头,如要求使用c语言,请自行实现
#include看完点个赞呗(✪ω✪)#include #include #include using namespace std; typedef struct node { char data; struct node* lchild; struct node* rchild; }Bitree; Bitree* CreatBitree(Bitree* tree) { char ch; char a; cin >> ch; if (ch == '@') { tree = NULL; } else { tree = (Bitree*)malloc(sizeof(Bitree)); tree->data = ch; tree->lchild = CreatBitree(tree->lchild); tree->rchild = CreatBitree(tree->rchild); } return tree; } void BitreeLevelOrder(Bitree* root) { queue Queue; if (root == NULL) { return; } Queue.push(*root); while (!Queue.empty()) { Bitree temp = Queue.front(); Queue.pop(); printf("%c", temp.data); if (temp.lchild != NULL) { Queue.push(*temp.lchild); } if (temp.rchild != NULL) { Queue.push(*temp.rchild); } } } int main() { int num = 0; cin >> num; for (int i = 0; i < num; i++) { queue s; Bitree* tree = NULL; tree = CreatBitree(tree); BitreeLevelOrder(tree); printf("n"); } }



