Red de conocimiento informático - Material del sitio web - Cómo construir un árbol binario basado en el recorrido posterior al orden y en el recorrido en orden

Cómo construir un árbol binario basado en el recorrido posterior al orden y en el recorrido en orden

#includelt;stdio.hgt;

#includelt;stdlib.hgt;

#includelt;string.hgt;

# define TAMAÑO 100

typedef char ElemType;

//Declara la estructura del árbol binario

typedef struct node

{

Datos ElemType;

estructura nodo *lchild, *rchild;

}BitTree;

BitTree *createBinTreeByPostIn(char *post, char *in, int número)

{

if(número==0) return NULL;

char c = post[número-1];

int i = 0;

mientras(en[i]!=c amp; amp; i lt; número)i

int leftNumber = i;

int rightNumber = número - i - 1;

BitTree *nodo = (BitTree *)malloc(sizeof(BitTree));

nodo-gt;

node-gt;lchild = createBinTreeByPostIn(amp;post[0],amp;in[0],leftNumber);

node-gt;rchild = createBinTreeByPostIn(amp;post [ leftNumber], amp; en [i 1], rightNumber);

nodo de retorno

}

void PreOrder(BitTree *bt)

{

if(bt!=NULL)

{

printf("c ", bt-gt; datos);

Pedido anticipado(bt-gt;lchild);

Pedido anticipado(bt-gt;rchild);

}

}

int main(int argc, char **argv)

{

char a[TAMAÑO], b[TAMAÑO];

BitTree *p;

while(scanf("ss", a, b)!=EOF)

{

p = createBinTreeByPostIn(a, b, strlen(a) ) ;

Preorden(p);

printf("\n");

}

return 0;

}

Información ampliada:

Notas

1. Recorrido en orden (LDR)

Recorrido en orden primero atraviesa Se visita el subárbol izquierdo, luego se visita el nodo raíz y finalmente se atraviesa el subárbol derecho. Al atravesar los subárboles izquierdo y derecho, el subárbol izquierdo todavía se atraviesa primero, luego se visita el nodo raíz y finalmente se atraviesa el subárbol derecho.

Es decir:

Si el árbol binario está vacío, finalice y regrese; de ​​lo contrario:

1. Recorrido en orden del subárbol izquierdo.

2. el nodo raíz

3. En orden, recorra el subárbol derecho.

Nota: El método transversal en orden todavía se utiliza al atravesar los subárboles izquierdo y derecho.

2. Recorrido posterior al orden (LRD) El recorrido posterior al orden primero atraviesa el subárbol izquierdo, luego atraviesa el subárbol derecho y finalmente visita el nodo raíz. Al atravesar los subárboles izquierdo y derecho, el subárbol izquierdo todavía se atraviesa primero, luego se atraviesa el subárbol derecho y finalmente se visita el nodo raíz. Es decir:

Si el árbol binario está vacío, finalice y regrese; de ​​lo contrario:

1. Recorrido posterior al orden del subárbol izquierdo.

2. Recorrido posterior al pedido del subárbol derecho.

3. Visita el nodo raíz.

Nota: El método transversal posterior al pedido todavía se utiliza al atravesar los subárboles izquierdo y derecho. ?