[NOJ]数据结构 NO.16计算二叉树叶子节点数目
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
char data;
struct Node *lchild,*rchild;
}BiTNode;
void create(BiTNode *T)
{
char c;
c=getchar();
T->data=c;
T->lchild=NULL;
T->rchild=NULL;
if(c=='#') return ;
T->lchild=(BiTNode*)malloc(sizeof(BiTNode));
create(T->lchild);
T->rchild=(BiTNode*)malloc(sizeof(BiTNode));
create(T->rchild);
}
int preorder(BiTNode *T)
{
int ans=0;
if(T->data!='#'){
if(T->lchild->data=='#'&&T->rchild->data=='#') return 1;
ans+=preorder(T->lchild);
ans+=preorder(T->rchild);
return ans;
}
else return 0;
}
int main()
{
BiTNode *T;
int ans;
T=(BiTNode*)malloc(sizeof(BiTNode));
create(T);
ans=preorder(T);
printf("%d",ans);
return 0;
}
最后
以上就是野性彩虹最近收集整理的关于[NOJ]数据结构 NO.16计算二叉树叶子节点数目[NOJ]数据结构 NO.16计算二叉树叶子节点数目的全部内容,更多相关[NOJ]数据结构内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复