Red de conocimiento informático - Conocimiento informático - Dado un árbol binario, la secuencia transversal de preorden es ABECDFGHIJ y la secuencia transversal de orden es EBCDAFHIGJ.

Dado un árbol binario, la secuencia transversal de preorden es ABECDFGHIJ y la secuencia transversal de orden es EBCDAFHIGJ.

#include lt;stdlib.hgt;

#include lt;stdio.hgt;

#include lt;string.hgt;

tipo de carácter typedef;

niveles int estáticos = 0;

estructura de nodo

{

tipo de clave;

nodo * izquierda;

nodo * derecha;

};

nodo * diversión(escriba arrLevel[], escriba arrMid[], int length , int beg, int end)

{

if(beg gt; end)return NULL;

int lb = beg, le, rb, re = fin;

bool flag = false;

nodo * raíz = (nodo*)malloc(sizeof(nodo)); )

{

root-gt; clave = arrMid[beg];

root-gt; izquierda = root-gt = NULL; p>

p>

return raíz

}

for(niveles = 0; niveles lt; longitud; niveles)

{

for(int i = beg; i lt; end; i )

{

if(arrMid[i] == arrLevel[niveles])

{

le = i -1;

rb = i 1;

bandera = verdadero

raíz; -gt; clave = arrLevel[niveles];

break; //buscar

}

}

if(bandera)break ;

}

root-gt; izquierda = fun(arrLevel, arrMid, longitud, lb, le

root-gt; arrLevel, arrMid, length, rb, re);

return root;

}

/*-----Recorrido posterior al pedido--- ---*/

void post_traverse(

nodo *r)

{

if(r){

post_traverse(r-gt;left

post_traverse(r); -gt;derecha);

printf("c ",r-gt;clave

}

printf("\n");

}

/*-----Destrucción posterior al pedido------*/

void post_destroy(node* amp; r)

{

if(r) {

post_destroy(r-gt; izquierda);

post_destroy(r-gt; derecha)

libre(r);

r = 0;

}

}

int principal( )

{

const int MAX = 20;

tipo arrLevel[] = "ABECDFGHIJ"

tipo arrMid[] = "EBCDAFHIGJ";

int longitud = strlen(arrLevel);

nodo * raíz = fun(arrLevel, arrMid, longitud, 0, longitud-1); p> printf("Árbol binario de salida transversal posterior al pedido: ");

post_traverse(root);

post_destroy(root); ;

devuelve 0;

}