这个是Realese的
这个是Debug的
这是一个计算二叉树指定结点层次的代码
#include<stdio.h>
#include<malloc.h>
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree CreateBiTree()
{
char e;
BiTree T;
scanf("%c",&e);
if(e=='#')
T=NULL;
else
{
T=(BiTNode*)malloc(sizeof(BiTNode));
if(!T)
return 0;
T->data=e;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return T;
}
int getLever(BiTree T,char p)
{
if(T==NULL) return 0;
if(T->data==p) return 1;//如果相等,返回第一层
int l=getLever(T->lchild,p);printf("l:%d ",l);
int r=getLever(T->rchild,p);printf("r:%d ",r);
if(l||r)
{
//注意这个,只有当在树中找到P时才进入
if(l>r)
return l+1;
else
return r+1;
}
}
int main()
{
BiTree T;
T=CreateBiTree();
char ch;
getchar();
scanf("%c",&ch);
printf("D:%d ",getLever(T,ch));
}