CH5_1.C
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #include <alloc.h>
  2. #include <stdio.h>
  3. typedef struct node
  4. {   char data;
  5.     struct node *lchild,*rchild;
  6. }JD;
  7. void preorder(JD *bt)
  8. {  if(bt!=NULL)
  9.    {  printf("%c  ",bt->data);
  10.       preorder(bt->lchild);
  11.       preorder(bt->rchild);
  12.    }
  13. }
  14. void inorder(JD *bt)
  15. {  if(bt!=NULL)
  16.    {  inorder(bt->lchild);
  17.       printf("%c  ",bt->data);
  18.       inorder(bt->rchild);
  19.    }
  20. }
  21. void postorder(JD *bt)
  22. {  if(bt!=NULL)
  23.    {  postorder(bt->lchild);
  24.       postorder(bt->rchild);
  25.       printf("%c  ",bt->data);
  26.    }
  27. }
  28. JD *crt_bt_pre(JD *bt)
  29. {  char ch;
  30.    printf("ch=");
  31.    scanf("%c",&ch);
  32.    getchar();
  33.    if(ch==' ')  bt=NULL;
  34.    else
  35.    {   bt=(JD *)malloc(sizeof(JD));
  36.        bt->data=ch;
  37.        bt->lchild=crt_bt_pre(bt->lchild);
  38.        bt->rchild=crt_bt_pre(bt->rchild);
  39.    }
  40.    return(bt);
  41. }
  42. void main()
  43. {  JD *head=NULL;
  44. /*   char a[]={'A','B','C',' ',' ','D','E',' ','G',' ',' ','F',' ',' ',' '};*/
  45.    head=crt_bt_pre(head);
  46.    preorder(head);
  47.    printf("n");
  48.    inorder(head);
  49.    printf("n");
  50.    postorder(head);
  51.    printf("n");
  52. }