Cree el siguiente árbol binario en orden de precedencia y luego genere el valor, el nivel y los nodos secundarios izquierdo y derecho de los nodos en orden de precedencia escritos en lenguaje C, para que los principiantes aprendan la estructura de datos;
#include
#include
#include
# define VERDADERO 1
#define FALSO 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1 p>
#define OVERFLOW -2
typedef int Estado;
typedef char elemtype;
typedef struct BiTNode{
elemtype data;
struct BiTNode *lchild,*rchild
}BiTNode,*BiTree;
//Construir un árbol binario
Estado CreateBiTree(BiTree &T){
elemtype ch;
ch=getchar();
if(ch==' '){T=NULL ;}
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
return FALSE;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}
// Recorrido de pedido anticipado
void PreOrderTraverse(BiTree T){
if( T!=NULL){
printf("%c ",T->datos);
PreOrderTraverse(T->lchild);
PreOrderTraverse( T->rchild);
}
}
//El número de nodos de hoja
Estado Número de hoja(BiTree) T){
int num1=0,num2=0;
if(T==NULL)
devuelve 0;
else if ( T->lchild==NULL&&T->rchild==NULL) devuelve 1;
else
{
num1=Número de hoja(T-> lchild);
num2=Número de hoja(T->rchild);
return(num1+num2);
}
}
//La profundidad del árbol
<p>Status DepthTree(BiTree T){
int llength=0,rlength=0;
if(T==NULL) devuelve 0;
else {
llength=DepthTree(T->lchild);
rlength=DepthTree(T->rchild);
return(llength>rlength)?( llength+1):(rlength+1);
}
}
void main()
{
BiTree s;
printf("Ingrese una cadena, use espacios para representar espacios\n");
CreateBiTree(s);
printf ( "Salida del pedido anticipado:\n");
PreOrderTraverse(s);
printf("\nProfundidad del árbol: %d\n",DepthTree(s) p>
getch();
}