Red de conocimiento informático - Descarga de software - Cree un árbol mediante programación.

Cree un árbol mediante programación.

Encuentre un patrón:

Prólogo: El primer carácter de ABECDFGHIJ es a, lo que significa que es la raíz del árbol. Luego ubique A en la posición de orden medio: EBCDAFHIGJ. A divide el orden medio en dos subcadenas: EBCD y FHIGJ, que son todos nodos del subárbol izquierdo y derecho de A, respectivamente.

Prólogo: El segundo carácter de ABECDFGHIJ es B. De manera similar, divide la subcadena EBCD en dos subcadenas, E y CD, que son las subcadenas izquierda y derecha con B como raíz.

Prólogo: El tercer carácter de ABECDFGHIJ es e, que ya es un nodo hoja. Porque e es un personaje. Izquierda y derecha son cadenas vacías.

Prólogo: El cuarto carácter de ABECDFGHIJ es C. De manera similar, divide la subcadena CD en una cadena vacía izquierda y el carácter d. La cadena vacía significa que C no tiene ningún nodo secundario izquierdo.

Prólogo: El quinto carácter de ABECDFGHIJ es d, que ya es un nodo hoja. Porque d es un personaje.

. . .

De manera similar, el subárbol derecho de A también se puede reconstruir.

-Implementación recursiva, ¡hazlo tú mismo!

Ejemplo:

void createbtreeFromPreM(NODE * * root, char* p, char* m, int len)

{

int llen, rlen//llen+rlen+1=len

if (p)

* root = create node(* p); //Asigna dinámicamente memoria de nodo e inicializa

int pos = 0; //La posición del primer carácter en el preámbulo en la secuencia intermedia, la base es 0

while(*p!=*(m+pos) )

pos++;

if(pos-1 & gt; 0)

{

llen = pos

createbtreefrompem(&(*root)->left,p+1,m,llen);

}

if(len-pos-1>0 )

{

rlen = len-pos-1;

createbtreefrompem(&(*root)->right,p+llen+ 1, m+llen +1, rlen);

}

}