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

来源:互联网 发布:17网广州网络批发市场 编辑:程序博客网 时间:2024/06/06 17:53
数据结构实验之二叉树五:层序遍历

Time Limit: 1000MS Memory Limit: 65536KB

Submit Statistic

Problem Description


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

Input

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

Output

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

Example Input

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

Example Output

abcdefg
xnuli

Hint



Author

xam



#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct node{    char data;    struct node *lc, *rc;}*Tree;void creat(Tree &T);void OutPut(Tree T);Tree b[55];char a[55];int i, j, k;int main(){    int t;    Tree T;    scanf("%d", &t);    while(t--)    {        scanf("%s", a);        i = -1;        k = 0;        j = 0;        creat(T);        OutPut(T);        printf("\n");    }    return 0;}void creat(Tree &T){    char c;    c = a[++i];    if(c == ',')        T = NULL;    else    {        T = (Tree)malloc(sizeof(struct node));  //重中之重        T->data = c;        creat(T->lc);        creat(T->rc);    }}void OutPut(Tree T){    if(T)    {        b[j++] = T;        while(k < j)        {            if(b[k]->lc)            {                b[j++] = b[k]->lc;            }            if(b[k]->rc)            {                b[j++] = b[k]->rc;            }            printf("%c", b[k++]->data);        }    }}


原创粉丝点击