代码
#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
typedef struct BitNode
{
ElemType data;
struct BitNode *lchild,*rchild;
}BitNode,*BiTree;
void CreateBiTree(BiTree *T){
ElemType c;
scanf("%c",&c);
if (' '==c){
*T = NULL;
}else{
*T = (BitNode *)malloc(sizeof(BitNode));
(*T)->data = c;
CreateBiTree(&((*T)->lchild));
CreateBiTree(&((*T)->rchild));
}
}
void visit(BiTree T,int level){
printf("%c 位于%d层\n",T->data,level);
}
void PreOrderTraverse(BiTree T,int level){
if(T){
visit(T,level);
PreOrderTraverse(T->lchild,level+1);
PreOrderTraverse(T->rchild,level+1);
}
}
int main(){
int level = 1;
BiTree T = NULL;
CreateBiTree(&T);
PreOrderTraverse(T,level);
return 0;
}

效果
