#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N=55;
string s;
int tot,idx,t,cnt;
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 bfs(int root)
{
queue<int> q;
if(root)
{
q.push(root);
}
while(q.size())
{
int u=q.front();
q.pop();
if(!tr[u].l&&!tr[u].r)
cout<<tr[u].dat;
if(tr[u].l)q.push(tr[u].l);
if(tr[u].r)q.push(tr[u].r);
}
}
int main()
{
while(cin>>s)
{
tot=idx=cnt=0;
int root=build();
bfs(root);
cout<<endl;
}
return 0;
}
I - 数据结构实验之二叉树七:叶子问题
最新推荐文章于 2024-09-26 22:55:54 发布