#include<iostream>
using namespace std;
typedef struct TNode//
äºåæ ç»æ
{
char nodeValue;//ç»ç¹çå¼
TNode* left;//å·¦åæ
TNode* right;//å³åæ
}*BiTree;
void CreateBiTree(BiTree &T)//
ä¸åºéåæ¹å¼å建äºåæ ,è¾å
¥#代表该ç»ç¹ä¸ºç©º
{
char nodeValue;
cin>> nodeValue;
if(nodeValue!='#')//ç»ç¹é空
{
T=new TNode;
T->nodeValue=nodeValue;
CreateBiTree(T->left);
CreateBiTree(T->right);
}
else T=NULL;
}
int CountLeaf(BiTree T)
{
static int LeafNum=0;//å¶ååå§æ°ç®ä¸º0ï¼ä½¿ç¨
éæåé if(T)//æ é空
{
if(T->left==NULL&&T->right==NULL)//为
å¶åç»ç¹ LeafNum++;//å¶åæ°ç®å 1
else//ä¸ä¸ºå¶åç»ç¹
{
CountLeaf(T->left);//éå½ç»è®¡å·¦åæ å¶åæ°ç®
CountLeaf(T->right);//éå½ç»è®¡å³åæ å¶åæ°ç®
}
}
return LeafNum;
}
//ç¨æ¥æµè¯ç
mainå½æ°ï¼
int main()
{
BiTree T;
int leafNum;
cout<<"请è¾å
¥ä¸åºéåçäºåæ åºå(#å·ä»£è¡¨è¯¥ç»ç¹ä¸ºç©º)ï¼å¦(ABC##DE#G##F###)"<<endl;
CreateBiTree(T);
leafNum=CountLeaf(T);
cout<<"该äºåæ ä¸å¶åç»ç¹æ°ä¸ºï¼"<<leafNum<<endl;
return 0;
}