您的位置:首页 > 理论基础 > 数据结构算法

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

2017-11-01 14:49 162 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: