这段代码怎么理解呢
#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]