//计算叶子节点数目
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTreeNode{
char elem;
struct BiTreeNode *lchild,*rchild;
}BiTreeNode,*BiTree;
BiTree Creat_Tree(BiTree T){
char c = getchar();
if(c == '#')
{
return NULL;
}
else
{
T = (BiTree)malloc(sizeof(BiTreeNode));
T->lchild = NULL;
T->rchild = NULL;
T->elem = c;
T->lchild = Creat_Tree(T->lchild);
T->rchild = Creat_Tree(T->rchild);
return T;
}
}
int Caculate_Node(BiTree T){
int N = 0,n1 = 0,n2 = 0;
if(T->lchild == NULL && T->rchild == NULL)
{
return N = 1;
}
if(T->rchild)
{
n1 = Caculate_Node(T->rchild);
}
if(T->lchild)
{
n2 = Caculate_Node(T->lchild);
}
return n1+n2;
}
int main(){
BiTree t1;
int n;
t1 = Creat_Tree(t1);
n = Caculate_Node(t1);
printf("%d\n",n);
return 0;
}
noj16 计算二叉树叶子节点数目
最新推荐文章于 2022-05-03 16:23:27 发布