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

来源:互联网 发布:php 使用ftp上传文件 编辑:程序博客网 时间:2024/06/09 11:52

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int i;
char s[60];
typedef struct BiTNode
{
    char data;
    BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
BiTNode *createtree(BiTree &T)
{
    char ch = s[i++];
    if(ch == ',')
    T = NULL;
    else
    {
        T = new BiTNode;
        T->data = ch;
        T->lchild = createtree(T->lchild);
        T->rchild = createtree(T->rchild);
    }
    return T;
}
void f(BiTree T)
{
    BiTNode *t[100];
    int i = 0, j = 0;
    t[i++] = T;
    while(i > j)
    {
       if(t[j])
       {
           if(!(t[j]->lchild) && !(t[j]->rchild))
           {
               printf("%c",t[j]->data);
           }
           else
           {
               t[i++] = t[j]->lchild;
               t[i++] = t[j]->rchild;
           }
       }
       j++;
    }
}
int main()
{
        while(~scanf("%s",s))
        {
            BiTNode *T;
            i = 0;
            T = createtree(T);
            f(T);
            printf("\n");
        }
        return 0;
}

阅读全文
1 0