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

来源:互联网 发布:淘宝什么定制店铺好 编辑:程序博客网 时间:2024/06/06 19:37

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

Problem Description

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

Input

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

Output

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

Example Input

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

Example Output

abcdefgxnuli
=----------------------------------------------------------------------------------------
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct node{    char data;    struct node *lchild, *rchild;}*bitTree;int cnt = 0;char str[100];void creatTree(bitTree &root, char str[]){    char ch = str[cnt++];    if(ch == ','){        root = NULL;    }    else{        root = new node;        root->data = ch;        creatTree(root->lchild, str);        creatTree(root->rchild, str);    }}void cengxu(bitTree root){    int in = 0, out = 0;    struct node *a[1050];    a[in++] = root;    while(in > out){        if(a[out] != NULL){            printf("%c", a[out]->data);            a[in++] = a[out]->lchild;            a[in++] = a[out]->rchild;        }        out++;    }}int main(){    int m;    scanf("%d", &m);    while(m--){        scanf("%s", str);        cnt = 0;        bitTree root;        creatTree(root, str);        cengxu(root);        printf("\n");    }    return 0;}



阅读全文
0 0
原创粉丝点击