#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; }
结果:
先序
中序
后序