说明:
由于本人能力有限,文章难免有错误之处,希望同学们不吝赐教,共同进步!
题目:统计二叉树中的叶子结点数
问题描述:
建立二叉链表,统计二叉树中的叶子结点数并输出。
输入说明:
按照完全二叉树的形式输入二叉树的各结点数据(字符),其中虚结点用’@‘表示。输入以’#'结束。
输出说明:
输出叶子结点的个数及具体值。第一行为叶子结点的数据值,各数据用空格分隔,第二行为叶子结点的个数。
输入样例:
abc@@de#
输出样例:
b d e
3
C代码实现:
#include "stdio.h"
int Initshuzu(char tree[]){
char ch;
scanf("%c",&ch);
for(int j=1;j<100;j++) //全赋值为@
{
tree[j]='@';
}
int i=1;
while(ch!='#')
{
tree[i]=ch;
scanf("%c",&ch);
i++;
}
return i;
}
void println(char str[],int X){
int i=X;
int sum=0,j;
for(j=1;j<i;j++)
{
if(str[j]!='@'&&str[j*2]=='@'&&str[j*2+1]=='@')
{
printf("%c ",str[j]);
sum++;
}
}
printf("\n");
printf("%d",sum);
}
int main()
{
int i=0;
char tree[100];
int tmp;
tmp=Initshuzu(tree);
println(tree,tmp);
return 0;
}