二叉树的创建,先序遍历,中序遍历,后序遍历

桃扇骨 2022-08-19 02:11 280阅读 0赞

Center

Center 1

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define OK 1
  4. #define ERROR 0
  5. typedef char TElemType;
  6. typedef struct BiTNode{
  7. TElemType data;
  8. struct BiTNode *lchild, *rchild;
  9. }BiTNode, *BiTree;
  10. void CreateBiTree(BiTree &T){
  11. TElemType ch;
  12. fflush(stdin);
  13. scanf("%c", &ch);
  14. fflush(stdin);
  15. if('#' == ch){
  16. T = NULL;
  17. }else{
  18. T = (BiTNode *)malloc(sizeof(BiTNode));
  19. T->data = ch;
  20. CreateBiTree(T->lchild);
  21. CreateBiTree(T->rchild);
  22. }
  23. }
  24. void FirstOrder(BiTree &T){
  25. if(T){
  26. printf("%c ",T->data);
  27. FirstOrder(T->lchild);
  28. FirstOrder(T->rchild);
  29. }
  30. }
  31. void InOrder(BiTree &T){
  32. if(T){
  33. InOrder(T->lchild);
  34. printf("%c ",T->data);
  35. InOrder(T->rchild);
  36. }
  37. }
  38. void LastOrder(BiTree &T){
  39. if(T){
  40. LastOrder(T->lchild);
  41. LastOrder(T->rchild);
  42. printf("%c ",T->data);
  43. }
  44. }
  45. int main(){
  46. printf("*******************二叉树遍历*************************\n");
  47. printf("1、创建二叉树 2、先序遍历 3、中序遍历 4、后序遍历 5、退出\n");
  48. printf("请选择:\n");
  49. int n;
  50. scanf("%d", &n);
  51. while(1){
  52. switch(n){
  53. case 1:
  54. BiTree T;
  55. CreateBiTree(T);
  56. break;
  57. case 2:
  58. FirstOrder(T);
  59. printf("\n");
  60. break;
  61. case 3:
  62. InOrder(T);
  63. printf("\n");
  64. break;
  65. case 4:
  66. LastOrder(T);
  67. printf("\n");
  68. break;
  69. case 5:
  70. exit(1);
  71. default:
  72. printf("输入有误!,请重新输入\n");
  73. break;
  74. }
  75. printf("请选择:\n");
  76. scanf("%d", &n);
  77. }
  78. return 0;
  79. }

发表评论

表情:
评论列表 (有 0 条评论,280人围观)

还没有评论,来说两句吧...

相关阅读