就是一个树有几个两叉的那种,给一个我写的特例;
A#BC##E##
--------------------
1
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct node
{
char data;
struct node *L_Kid,*R_Kid;
}Tree;
int cnt=0;
void initTree(Tree *&T)
{
char str;
cin>>str;
if(str!='#')
{
T=(Tree *)malloc(sizeof(Tree));
T->data=str;
initTree(T->L_Kid);
initTree(T->R_Kid);
}
else T=NULL;
}
int searchTree(Tree *&T)
{
if(T!=NULL)
{
if(T->L_Kid!=NULL && T->R_Kid!=NULL)
{
cnt++;
searchTree(T->L_Kid);
searchTree(T->R_Kid);
}
else
{
searchTree(T->L_Kid);
searchTree(T->R_Kid);
}
}
return cnt;
}
int main()
{
Tree *T;
initTree(T);
int m=searchTree(T);
cout<<m;
return 0;
}