#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
char data;
struct node *lc,*rc;
} node,*link;
int i,flag,a,b,c;
void creat(link &L)
{
char ch;
scanf("%c",&ch);
i++;
if(i==1&&ch=='0')
{
flag=0;
return ;
}
if(ch=='0')
L=NULL;
else
{
L=new node;
L->data=ch;
creat(L->lc);
creat(L->rc);
}
}
int js(link L)
{
if(!L) return 0;
else
{
if(!L->lc&&!L->rc) a++;
else if(L->lc&&L->rc) b++;
return js(L->lc)+js(L->rc)+1;
}
}
int main()
{
while(1)
{
i=0,flag=1,a=0,b=0,c=0;
link L;
creat(L);
if(!flag) break;
c=js(L);
printf("%d %d %d\n",a,c-b-a,b);
getchar();
}
return 0;
}
基于二叉链表的二叉树结点个数的统计
最新推荐文章于 2023-12-06 20:46:07 发布