#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N=55;
string s;
int tot,idx,t;
struct NODE
{
char dat;
int l,r;
}tr[N];
int build()
{
if(s[idx]==',')
{
idx++;
return 0;
}
tr[++tot].dat=s[idx++];//0代表结点为空所以tot要从1开始存
int now=tot;
tr[now].l=build();
tr[now].r=build();
return now;
}
void floorprint(int root)
{
queue<int> q;
if(root)//避免根节点为空
{
q.push(root);
}
while(q.size())
{
int u=q.front();
q.pop();
if(tr[u].l)q.push(tr[u].l);
if(tr[u].r)q.push(tr[u].r);
cout<<tr[u].dat;
}
}
int main()
{
cin>>t;
while(t--)
{
cin>>s;
idx=tot=0;
int root=build();
floorprint(root);
cout<<endl;
}
return 0;
}
D - 数据结构实验之二叉树五:层序遍历
最新推荐文章于 2024-10-16 22:43:21 发布