当前位置:   article > 正文

建立二叉树以及先序,中序,后序输出(C语言版)_定义二叉树结点,创建二叉树,分别利用先序、中序、后序遍历,输出结果

定义二叉树结点,创建二叉树,分别利用先序、中序、后序遍历,输出结果
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. typedef struct Tree{
  4. char data; // 存放数据域
  5. struct Tree *lchild; // 遍历左子树指针
  6. struct Tree *rchild; // 遍历右子树指针
  7. }Tree,*BiTree;
  8. void CreateBiTree(BiTree &T){ //建立二叉树
  9. char ch;
  10. scanf("%c",&ch);
  11. if(ch=='#') T=NULL;
  12. else {
  13. T=(BiTree )malloc(sizeof(Tree));
  14. T->data=ch;
  15. CreateBiTree(T->lchild);
  16. CreateBiTree(T->rchild);
  17. }
  18. }
  19. void preOrderTraverse(BiTree T){ //先序输出
  20. if(T){
  21. printf("%c",T->data);
  22. preOrderTraverse(T->lchild);
  23. preOrderTraverse(T->rchild);
  24. }
  25. }
  26. void InOrderTraverse(BiTree T){ //中序输出
  27. if(T){
  28. InOrderTraverse(T->lchild);
  29. printf("%c",T->data);
  30. InOrderTraverse(T->rchild);
  31. }
  32. }
  33. void postOrderTraverse(BiTree T){ //后序输出
  34. if(T){
  35. postOrderTraverse(T->lchild);
  36. postOrderTraverse(T->rchild);
  37. printf("%c",T->data);
  38. }
  39. }
  40. int main(){
  41. BiTree T;
  42. printf("\n请输入构造二叉树的字符序列:");
  43. CreateBiTree(T);
  44. printf("\n");
  45. printf("\n该二叉树的先序是:");
  46. preOrderTraverse(T);
  47. printf("\n");
  48. printf("\n该二叉树的中序是:");
  49. InOrderTraverse(T);
  50. printf("\n");
  51. printf("\n该二叉树的后序是:");
  52. postOrderTraverse(T);
  53. printf("\n");
  54. return 0;
  55. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/569976
推荐阅读
相关标签
  

闽ICP备14008679号