7þ¦
来自「1、猴子选大王 2、约瑟夫环 3、迷宫求解 4、回文游戏 5、地图四染色」· 代码 · 共 52 行
TXT
52 行
//求二叉树中叶子结点个数
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#include "iostream"
int sum=0;
typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}*BiTree;
void creatBT(BiTree &T)//建树
{
char ch;
scanf("%c",&ch);
if(ch=='.')
T=NULL;
else
{ T=(node *)malloc(sizeof(node));
if(!T) exit(0);
T->data=ch;
creatBT(T->lchild);
creatBT(T->rchild);
}
}
void pre_order(node *T)
{
if(T)
{
if((T->lchild==NULL&&T->rchild!=NULL)||(T->lchild!=NULL&&T->rchild==NULL))//如果度为1
sum++;//统计
pre_order(T->lchild);
pre_order(T->rchild);
}
}
int main()
{
node *T;
printf("请输按先序序列输入一串字符,当子树为空时,用.来代替:\n");
creatBT(T);
pre_order(T);
printf("\n该二叉树的叶子数是:%d\n",sum);
return 0;
}
//abc..de.g..f...
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?