二叉树递归遍历

灰太狼 2022-04-10 09:23 317阅读 0赞

二叉树遍历

![在这里插入图片描述][Image 1]

20190101173727566.png

  1. 先序遍历:根左右
    结果:ABCDEFGH
  1. 中序遍历:左根右
    结果:BDCEAFHG
  1. 后续遍历:左右根
    结果:DECBHGFA

代码

  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef struct BINARYNODE
  4. {
  5. char ch;
  6. struct BINARYNODE* left;
  7. struct BINARYNODE* right;
  8. }BinaryNode;
  9. void Recursion(BinaryNode* root)
  10. {
  11. if(root==NULL) return;
  12. //先序
  13.   printf("%c",root->ch);
  14. Recursion(root->left);
  15. Recursion(root->right);
  16. //中序  
  17. // Recursion(root->left);
  18. // printf("%c",root->ch);
  19. // Recursion(root->right);
  20. //后序  
  21. // Recursion(root->left);
  22. // Recursion(root->right);
  23. // printf("%c",root->ch);
  24. }
  25. int main(void)
  26. {
  27. BinaryNode b1,b2,b3,b4,b5,b6,b7,b8;
  28. b1.ch = 'A'; b1.left = &b2; b1.right = &b3;
  29. b2.ch = 'B'; b2.left = NULL;b2.right = &b4;
  30. b3.ch = 'F'; b3.left = NULL;b3.right = &b5;
  31. b4.ch = 'C'; b4.left = &b6; b4.right = &b7;
  32. b5.ch = 'G'; b5.left = &b8; b5.right = NULL;
  33. b6.ch = 'D'; b6.left = NULL; b6.right = NULL;
  34. b7.ch = 'E'; b7.left = NULL; b7.right = NULL;
  35. b8.ch = 'H'; b8.left = NULL; b8.right = NULL;
  36. Recursion(&b1);
  37. return 0;
  38. }

结果:
先序
在这里插入图片描述
中序
在这里插入图片描述
后序
在这里插入图片描述

[Image 1]:

发表评论

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

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

相关阅读

    相关

    网上的递归遍历代码很多,这里就不赘述了,说一下思考的角度: 1. 把每一个棵子树都看成是独立的树; 2. 每一个节点都会把递归的代码重新执行一次; 3. 想象压栈的过程

    相关

    二叉树又称为红黑树,是一种常用的数据结构,而二叉树的遍历则是一种非常基本的操作。遍历二叉树的方式有两大类:递归和非递归。递归方式算法较为简便,并且更便于理解,非递归方式则需要对

    相关 版)

    问题描述: 以一定的方式输入数据(本文是以先序遍历的方式输入),程序根据数据进行解析,创建二叉树,然后对二叉树进行操作,主要操作包括以下几种: 1. 求二叉树的高度 2