Los árboles binarios conocidos se almacenan en forma de listas binarias enlazadas. Escriba un algoritmo para calcular los nodos de grado 0 en un árbol binario. El grado es 1,2 grados.
# incluir ltstdlib.h gt
nodo de bits de estructura typedef
{
char datos;
estructura BiTNode *lchild, *rchild
}
BiTNode, *BiTree//definir tipo de nodo
BiTree CreateBiTree( )//Crear un árbol
{
char p;BiTree T;
scanf("c ", ampp);
if(p== ' ')
T = NULL
Otros
{
t = (nodo de bits *)malloc ( sizeof(bit node)); //Hacer espacio para el nodo
t->; data = p;
t->; l child = create bitree();< / p>
t->;rchild = crear bitree();
}
Retorno (T);
}
Int Nochild(BiTree T)//nodo hoja
{
if(T==NULL)
return(0);
if(T->lchild == NULL amp ampt->rchild==NULL)
return(1);
return(no child(T- gt ;lchild) no child(T- gt;rchild));
}
Int Onechild(BiTree T)//El grado es 1.
{
int n = 0;
if(T==NULL)
return(0);
if((T- gt; lchild == NULL amp ampt->; child! = NULL) | | (T- gt; child. = NULL amp ampt->; rchild==NULL))
n = 1;
return(one child(T- gt;lchild) one child(T- gt;rchild) n);
}
Int Twochild(BiTree T)//Grado 2
{
int n = 0;
if(T==NULL)
return(0);
if(T->; niño.
= NULL amp ampt->¡Niños! = vacío)
n = 1;
return(dos hijos(T- gt;lchild) dos hijos(T- gt;rchild) n);
}
Void main()//función principal
{
BiTree Ta
Printf("Por favor, cree un árbol: \ n ");
ta = create bitree();
Printf("El número de hojas es d, el número con grado 1 es d y el número con grado 2 es d" , ningún hijo (ta), un hijo (ta), dos hijos (ta));
}