//5
typedef struct node{
elemtype data;
struct node *fch,*nsib;
}*tree;
int leaves(tree t)
{
if(t==NULL) return 0;
if(t->fch==NULL) return 1+leaves(t->nsib);
else return leaves(t->tch)+leaves(t->nsib);
}
//6
int height(tree t)
{
int hc,hs;
if(bt=NULL)
{
return 0;
}
else
{
hc=height(bt->firstchild);
hs=height(bt->nextsibling);
if(hc+1>hs)
return hc+1;
else
retun hs;
}
}
//7
#define maxNodes 15
void CreateCStree_Degree(CSTree&T,DataType e[],int degree[],int n)
{
CSnode *pointer=new CSNode[maxNodes];
int i,j,d,k=0;
for(int i=0;i<n;i++){
pointer[i]->data=e[i];
pointer[i]->lchild=pointer[i]->rsibling=NULL;
}
for(int i=0;i<n;i++)
{
d=degree[i];
if(d){
k++;
pointer[i]-lchild=pointer[k];
for(j=2;j<=d;j++)
{
k++;
pointer[k-1]->rsibling=pointer[k];
}
}
}
t=pointer[0];
delete [] pointer;
}