您的位置:首页 > 理论基础 > 数据结构算法

数据结构实验之二叉树七:叶子问题

2019-08-05 13:01 197 查看

数据结构实验之二叉树七:叶子问题
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description

已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。
Input
输入数据有多行,每一行是一个长度小于50个字符的字符串。
Output
按从上到下从左到右的顺序输出二叉树的叶子结点。
Sample Input

abd,eg,cf,
xnl,i,u,

Sample Output

dfg
uli

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<queue>

using namespace std;
struct tree
{
tree *l, *r;
char data;
};
char s[55];
int i;
tree *creat()
{
char ch = s[i++];
tree *t;
if(ch == ',') t = NULL;
else
{
t = (tree *)malloc(sizeof(tree));
t->data = ch;
t->l = creat();
t->r = creat();
}
return t;
}
void getleft(tree *t)
{
queue<tree *>q;
tree *p = t;
if(p)
q.push(p);
while(!q.empty())
{
p = q.front();
q.pop();
if(p->l == NULL && p->r == NULL)
printf("%c", p->data);
if(p->l)
q.push(p->l);
if(p->r)
q.push(p->r);
}
}
int main()
{
while(scanf("%s", s) != EOF)
{
i = 0;
tree *t;
t = creat();
getleft(t);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: