#include<iostream>
using namespace std;
//===========================
struct BiTnode
{
char data;
struct BiTnode *lchild,*rchild;
};
//定义二叉树中的结点类型
//=========================================
void createbt(BiTnode *&T);
int Number(BiTnode *&T);
int nr,nl,num=0;
//=======================================
int main()
{
BiTnode *mytree;
cout<<"请以先序遍历的顺序输入二叉树中所有结点的字符"<<endl;
createbt(mytree);
cout<<"输出该二叉树的结点个数:"<<endl;
//Number(mytree,num);
cout<<Number(mytree)<<endl;
return 1;
}
//========================================
void createbt(BiTnode *&T)
{
char c;
cin>>c;
if(c=='#')
{
T=NULL;
return;
}
else
{
T=new BiTnode;
T->data=c;
createbt(T->lchild);
createbt(T->rchild);
}
}
//以先序序列作为输入顺序创建二叉树链表
//===========================
int Number(BiTnode *&T)
{
if(T==NULL)
{
cout<<"该二叉树为空树,程序结束"<<endl;
return 0;
}
else
{
nl=Number(T->lchild);
nr=Number(T->rchild);
return nr+nl+1;
}
}
using namespace std;
//===========================
struct BiTnode
{
char data;
struct BiTnode *lchild,*rchild;
};
//定义二叉树中的结点类型
//=========================================
void createbt(BiTnode *&T);
int Number(BiTnode *&T);
int nr,nl,num=0;
//=======================================
int main()
{
BiTnode *mytree;
cout<<"请以先序遍历的顺序输入二叉树中所有结点的字符"<<endl;
createbt(mytree);
cout<<"输出该二叉树的结点个数:"<<endl;
//Number(mytree,num);
cout<<Number(mytree)<<endl;
return 1;
}
//========================================
void createbt(BiTnode *&T)
{
char c;
cin>>c;
if(c=='#')
{
T=NULL;
return;
}
else
{
T=new BiTnode;
T->data=c;
createbt(T->lchild);
createbt(T->rchild);
}
}
//以先序序列作为输入顺序创建二叉树链表
//===========================
int Number(BiTnode *&T)
{
if(T==NULL)
{
cout<<"该二叉树为空树,程序结束"<<endl;
return 0;
}
else
{
nl=Number(T->lchild);
nr=Number(T->rchild);
return nr+nl+1;
}
}