当前位置:   article > 正文

先序创建二叉树,中序、先序、后序遍历_设计程序,按先序创建二叉树的二叉链表;然后先序、中序、后序遍历二叉树。

设计程序,按先序创建二叉树的二叉链表;然后先序、中序、后序遍历二叉树。

该文件用于创建一颗链表二叉树,测试创建二叉树,先序、中序、后序三种遍历方式

创建二叉树代码如下:

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define TYPE char
  3. struct biTree {
  4. TYPE data;
  5. struct biTree *lchild;
  6. struct biTree *rchild;
  7. };
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. biTree *create(biTree *T) {//这里我们采用先序创建一颗二叉树
  11. char data;
  12. printf("请输入当前节点值:data=");
  13. scanf("%c",&data);
  14. getchar();
  15. if (data != '#') {
  16. T = (biTree *)malloc(sizeof(biTree));
  17. T->data = data;
  18. T->lchild = NULL;
  19. T->rchild = NULL;
  20. T->lchild = create(T->lchild);
  21. T->rchild = create(T->rchild);
  22. }
  23. return T;
  24. }
  25. //中序递归遍历
  26. void inOrder(biTree *T) {
  27. if (T!=NULL) {
  28. inOrder(T->lchild);
  29. printf("%c ",T->data);
  30. inOrder(T->rchild);
  31. }
  32. }
  33. //先序递归遍历
  34. void preOrder(biTree *T) {
  35. if (T != NULL) {
  36. printf("%c ", T->data);
  37. preOrder(T->lchild);
  38. preOrder(T->rchild);
  39. }
  40. }
  41. //后序递归遍历
  42. void postOrder(biTree *T) {
  43. if (T != NULL) {
  44. postOrder(T->lchild);
  45. postOrder(T->rchild);
  46. printf("%c ", T->data);
  47. }
  48. }

测试代码如下:

  1. struct biTree {
  2. char data;
  3. struct biTree *lchild;
  4. struct biTree *rchild;
  5. };
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. int main() {
  9. struct biTree *T = (struct biTree*)malloc(sizeof(struct biTree));
  10. biTree *create(biTree*);
  11. void preOrder(biTree*);
  12. void inOrder(biTree*);
  13. void postOrder(biTree*);
  14. T=create(T);
  15. preOrder(T);
  16. printf("\n");
  17. inOrder(T);
  18. printf("\n");
  19. postOrder(T);
  20. return 0;
  21. }

努力是为了站在万人中央成为别人的光。

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

闽ICP备14008679号