实现如下图所示的二叉树的前序,中序,后序



#include<stdio.h>
#include<stdlib.h> 
typedef char BTDataType;
typedef struct BinaryTreeNode
{
     BTDataType data;
     struct BinaryTreeNode *left;
     struct BinaryTreeNode *right;
}BTNode;
void PrevOrder(BTNode *root);
void InOrder(BTNode *root);
void PostOrder(BTNode *root);
int main()
{
    BTNode* A=(BTNode*)malloc(sizeof(BTNode));
    A->data='A';
    A->left=A->right=NULL;
    BTNode* B=(BTNode*)malloc(sizeof(BTNode));
    B->data='B';
    B->left=B->right=NULL;
    BTNode* C=(BTNode*)malloc(sizeof(BTNode));
    C->data='C';
    C->left=C->right=NULL;
    BTNode* D=(BTNode*)malloc(sizeof(BTNode));
    D->data='D';
    D->left=D->right=NULL;
    BTNode* E=(BTNode*)malloc(sizeof(BTNode));
    E->data='E';
    E->left=NULL;
    E->right=NULL;
    
    A->left=B;
    A->right=C;
    B->left=D;
    B->right=E; 
    
    PrevOrder(A);
    printf("\n");
    
    InOrder(A);
    printf("\n");
    
    PostOrder(A);
    printf("\n");
    
    return 0;
    
}
void PrevOrder(BTNode *root)
{
    if(root==NULL)
    {
        printf("NULL "); 
        return ;
    }
    printf("%c ",root->data);
    PrevOrder(root->left);
    PrevOrder(root->right);
} 

void InOrder(BTNode *root)//中序 
{
    if(root==NULL)
    {
        printf("NULL "); 
        return ;
    }
    InOrder(root->left);
    printf("%c ",root->data);
    InOrder(root->right);
}
void PostOrder(BTNode *root)//后序 
{
    if(root==NULL)
    {
        printf("NULL "); 
        return ;
    }
    PostOrder(root->right);
    PostOrder(root->left);
    printf("%c ",root->data);
} 
运行结果: