C 언어 로 두 갈래 트 리 만 들 기

어떻게 이 진 트 리 를 만 드 는 지, 먼저 옮 겨 다 니 고, 중간 에 옮 겨 다 니 는 지.
#include 
#include 

#include
#define NULLKEY '?'

typedef struct btnode
{
    char data;
    struct btnode *lchild,*rchild;
}btnode,*bitree;
//       

bitree preCreateBitree(bitree &root)
{
    char ch;
    scanf("%c",&ch);
    if(ch==NULLKEY)
    {
        root=NULL;
        return(root);
    }
    else
    {
        root=(bitree)malloc(sizeof(btnode));
        root->data=ch;
        preCreateBitree(root->lchild);
        preCreateBitree(root->rchild);
        return(root);
    }
}

void fsearch(bitree root)
{
    if(root==NULL)
        return ;
    else
    {
        printf("%c",root->data); //          
        fsearch(root->lchild);
        fsearch(root->rchild);
    }
}

void msearch(bitree root)
{
    if(root==NULL)
        return ;
    else
    {
        msearch(root->lchild);
        printf("%c",root->data); //          
        msearch(root->rchild);
    }
}

int main()
{
    bitree root;
    root = preCreateBitree(root);
    printf("first:");
    fsearch(root);
    printf("
"
); printf("middle:"); msearch(root); printf("
"
); }

좋은 웹페이지 즐겨찾기