erchashuyezijiedianshu.c
来自「用c++语言实现的统计二叉树叶子节点个数 个人感觉不错仅供参考」· C语言 代码 · 共 39 行
C
39 行
#include<iostream.h>
#include<malloc.h>
#define LEN sizeof(struct BiTree)
struct BiTree{
char data;
struct BiTree *lchild;
struct BiTree *rchild;
};
char ch;
void CreateBiTree(struct BiTree *&T) {//按先序输入二叉树结点的值
cin>>ch;
if (ch=='#') {
T=NULL;
}
else {
T = (struct BiTree* )malloc(sizeof(struct BiTree));
T->data = ch; // 生成根结点
CreateBiTree(T->lchild); // 构造左子树
CreateBiTree(T->rchild); // 构造右子树
}
// return s;
} // CreateBiTree
void visit(char &e){
cout<<e<<endl;
}
int CountLeaf (BiTree*& T) {
if (T==NULL) return 0;
else if (T->lchild==NULL &&
T->rchild==NULL) return 1;
else return CountLeaf(T->lchild) +
CountLeaf(T->rchild);
}
void main(){
BiTree*tree;
CreateBiTree(tree);
cout<<CountLeaf(tree);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?