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

版权声明:欢迎转载,注明出处QWQ https://blog.csdn.net/Mercury_Lc/article/details/83861756
#include <bits/stdc++.h>
using namespace std;
struct node
{
    char data;
    struct node *lc, *rc;
};
char s[505];
int num;
struct node *creat()
{
    struct node *root;
    if(s[num ++] == ',')
    {
        root = NULL;
    }
    else
    {
        root = new node;
        root -> data = s[num - 1];
        root -> lc = creat();
        root -> rc = creat();
    }
    return root;
};
void level(struct node *root)
{
       struct node *q[100];
       int in = 0, out = 0;
       q[in++] = root;
       while(out < in)
       {
           if(q[out])
           {
               printf("%c", q[out] -> data);
               q[in++] = q[out] -> lc;
               q[in++] = q[out] -> rc;
           }
           out++;

       }
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",s);
        num = 0;
        struct node *root;
        root = creat();
        level(root);
        printf("\n");
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/Mercury_Lc/article/details/83861756