巴拉巴拉1 发表于 2020-12-9 16:29:16

这段代码怎么理解呢

#include<stdio.h>
#include<stdlib.h>
#define MAXCSIZE 100
typedef int TElemType;
typedef struct BitNode{
        TElemType data;
        struct BitNode *lchild,*rchild;
}BitNode,*BitTree; /*二叉树的构建*/
BitTree CreateBiTree(void) {
        BitTree bt;
        TElemType x;
        scanf("%d",&x);
        if(x==-1)   
                bt=NULL;
        else{   
                bt=(BitTree)malloc(sizeof(BitNode));   
                bt->data=x;   
                bt->lchild=CreateBiTree();   
                bt->rchild=CreateBiTree();
        }return bt; } /*二叉树的中序遍历*/
void InOrderTraverse(BitTree bt) {
        if(bt!=NULL){   
                InOrderTraverse(bt->lchild);   
                printf("%d",bt->data);         
                InOrderTraverse(bt->rchild);
        } } /*二叉树的后序遍历*/
void PostOrderTraverse(BitTree bt)
{if(bt!=NULL)
{   PostOrderTraverse(bt->lchild);
    PostOrderTraverse(bt->rchild);
        printf("%d",bt->data);
} } /*二叉树的先序遍历*/
void PreOrderTraverse(BitTree bt) {
        if(bt!=NULL){
                printf("%d",bt->data);
                PreOrderTraverse(bt->lchild);                        
                PreOrderTraverse(bt->rchild);
        } }
int main()
{   BitTree bt;
    bt=CreateBiTree();
        printf("\n中序遍历");
                InOrderTraverse(bt);
        printf("\n后序遍历");
                PostOrderTraverse(bt);
        printf("\n先序遍历");
                PreOrderTraverse(bt);
        printf("\n");
}
页: [1]
查看完整版本: 这段代码怎么理解呢