另一个树的问题,头疼啊.
					提示: 作者被禁止或删除 内容自动屏蔽
		
	
程序代码:
//计算任一一层的叶子结点数
#include <stdio.h>
#include <malloc.h>
#define maxsize 100
typedef char ElemType;
typedef struct node
{
    ElemType data;
    struct node *lchild,*rchild;
}BiNode,*BiTree;
BiTree CreatBiTree();
int Leaves(BiTree T,int k);
int main()
{
    BiTree T;
    int k,x;
    T=CreatBiTree();
    scanf("%d",&k);
    x=Leaves(T,k);
    printf("The %dth level of tree is %d\n",k,x);
    return 0;
}
BiTree CreatBiTree()
{
    BiTree T;
    ElemType x;
    scanf("%c",&x);
    if(x=='@') T=NULL;
    else
    {
        T=(BiTree)malloc(sizeof(BiNode));
        T->data=x;
        T->lchild=CreatBiTree();
        T->rchild=CreatBiTree();
    }
    return T;
}
int Leaves(BiTree T,int k)
{
    BiTree tree[maxsize];
    int i,front,rear,last,level,leaf;
    tree[1]=T;
    front=1;
    rear=2;
    level=1;
    last=2;
    leaf=0;
    while(level<k)
    {
        if(tree[front]->lchild)
            tree[rear++]=tree[front]->lchild;
        if(tree[front]->rchild)
            tree[rear++]=tree[front]->rchild;
        front++;
        if(front==last) { level++;last=rear; }
    }
    return rear-front;
//    for(i=front;i<rear;i++)
//        if(!tree[i]->lchild&&!tree[i]->rchild) leaf++;
//        return leaf;
}