二叉树的实现

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



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



全部评论

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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