数据结构实验之二叉树五:层序遍历

来源:互联网 发布:波利亚计数定理 知乎 编辑:程序博客网 时间:2024/06/05 20:53

数据结构实验之二叉树五:层序遍历

Time Limit: 1000MS Memory Limit: 65536KB

Problem Description

已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。

Input

 输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。

Output

 输出二叉树的层次遍历序列。

Example Input

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

Example Output

abcdefgxnuli

代码如下:

#include<bits/stdc++.h>using namespace std;struct node{    struct node *left;    struct node *right;    char data;};int cnt;char str[100];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 Bian_Li(struct node *tree){    int ant=0;    int temp=0;    struct node *p[100];    p[temp++]=tree;    while(temp>ant)    {        if(p[ant])        {            cout<<p[ant]->data;            p[temp++]=p[ant]->left;            p[temp++]=p[ant]->right;        }        ant++;    }}int main(){    int t;    struct node *tree;    cin>>t;    while(t--)    {        cin>>str;        cnt=-1;        tree=Creat();        Bian_Li(tree);        cout<<endl;    }    return 0;}


原创粉丝点击