二叉树的实现

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



#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);
} 
运行结果:



全部评论

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务