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

来源:互联网 发布:java装环境变量的作用 编辑:程序博客网 时间:2024/06/16 07:23

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

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。

Input

 输入数据有多行,每一行是一个长度小于50个字符的字符串。

Output

 按从上到下从左到右的顺序输出二叉树的叶子结点。

Example Input

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

Example Output

dfguli

Hint

代码如下:

#include<bits/stdc++.h>using namespace std;struct node{    char data;    struct node *left;    struct node *right;};char str[100];int cnt;struct node *Creat(){    struct node *tree;    if(str[++cnt]==',')    {        tree=NULL;    }    else    {        tree=new node;        tree->data=str[cnt];        tree->left=Creat();        tree->right=Creat();    }    return tree;};void Root(struct node *tree){    int ant=0;    int temp=0;    struct node *p[100];    p[temp++]=tree;    while(temp>ant)    {        if(p[ant])        {            if(p[ant]->left==NULL&&p[ant]->right==NULL)            {                cout<<p[ant]->data;            }            else            {                p[temp++]=p[ant]->left;                p[temp++]=p[ant]->right;            }        }        ant++;    }}int main(){    struct node *tree;    while(cin>>str)    {        cnt=-1;        tree=Creat();        Root(tree);        cout<<endl;    }    return 0;}