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. ?