二叉树递归遍历
二叉树遍历
![在这里插入图片描述][Image 1]
- 先序遍历:根左右
结果:ABCDEFGH
- 中序遍历:左根右
结果:BDCEAFHG
- 后续遍历:左右根
结果:DECBHGFA
代码
#include <stdio.h>
#include <string.h>
typedef struct BINARYNODE
{
char ch;
struct BINARYNODE* left;
struct BINARYNODE* right;
}BinaryNode;
void Recursion(BinaryNode* root)
{
if(root==NULL) return;
//先序
printf("%c",root->ch);
Recursion(root->left);
Recursion(root->right);
//中序
// Recursion(root->left);
// printf("%c",root->ch);
// Recursion(root->right);
//后序
// Recursion(root->left);
// Recursion(root->right);
// printf("%c",root->ch);
}
int main(void)
{
BinaryNode b1,b2,b3,b4,b5,b6,b7,b8;
b1.ch = 'A'; b1.left = &b2; b1.right = &b3;
b2.ch = 'B'; b2.left = NULL;b2.right = &b4;
b3.ch = 'F'; b3.left = NULL;b3.right = &b5;
b4.ch = 'C'; b4.left = &b6; b4.right = &b7;
b5.ch = 'G'; b5.left = &b8; b5.right = NULL;
b6.ch = 'D'; b6.left = NULL; b6.right = NULL;
b7.ch = 'E'; b7.left = NULL; b7.right = NULL;
b8.ch = 'H'; b8.left = NULL; b8.right = NULL;
Recursion(&b1);
return 0;
}
结果:
先序
中序
后序
[Image 1]:
还没有评论,来说两句吧...