二叉树的实现

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



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



全部评论

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务