回覆列表
  • 1 # 錢布斯

    #include

    #include

    #include

    typedef struct BiTNode {

    char data;

    struct BiTNode *lchild;

    struct BiTNode *rchild;

    } *BiTree;

    BiTree CreateBiTree(BiTree T){

    char ch;

    scanf("%c",&ch);

    if (ch=="#"){

    return NULL;

    }else {

    T = (BiTree)malloc(sizeof(struct BiTNode)) ;

    T->data = ch;

    T->lchild=CreateBiTree(T->lchild);

    T->rchild=CreateBiTree(T->rchild);

    return T;

    }

    }

    void PreOrder(BiTree &T){

    if(T){

    printf("%c ",T->data);

    PreOrder(T->lchild);

    PreOrder(T->rchild);

    }

    }

    void InOrder(BiTree &T){

    if(T){

    InOrder(T->lchild);

    printf("%c ",T->data);

    InOrder(T->rchild);

    }

    }

    void PostOrder(BiTree &T){

    if(T){

    PostOrder(T->lchild);

    PostOrder(T->rchild);

    printf("%c ",T->data);

    }

    }

    void ShowBiTree(BiTree &bt)

    {

    if (bt!=NULL){

    printf("%c",bt->data);

    if (bt->rchild!=NULL||bt->lchild!=NULL){

    printf("(");

    ShowBiTree(bt->lchild);

    if (bt->rchild!=NULL){

    printf(",");

    }

    ShowBiTree(bt->rchild);

    printf(")");

    }

    }

    }

    int main()

    {

    printf("請依次輸入字元: abd#g##e##c#fh###\n");

    BiTree T;

    T = CreateBiTree(T);

    printf("先序遍歷: \n");

    PreOrder(T);

    printf("\n中序遍歷: \n");

    InOrder(T);

    printf("\n後序遍歷: \n");

    PostOrder(T);

    printf("\n用括號表示法輸出二叉樹:\n");

    ShowBiTree(T);

    printf("\n");

    system("pause");

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • 花朵為什麼是越鮮豔越有毒?對人體健康有害的?