Red de conocimiento informático - Programación de la red - Rogarle al maestro de programación que escriba un programa en lenguaje C

Rogarle al maestro de programación que escriba un programa en lenguaje C

La siguiente es una pregunta que hice. El árbol de ideas del algoritmo se ha explicado en detalle, así que les daré el código.

Descripción del problema

Ingrese la secuencia transversal de preorden y la secuencia transversal de orden del árbol binario, y genere la secuencia transversal de posorden del árbol binario.

Entrada

La primera línea ingresa la secuencia transversal en orden previo del árbol binario.

La segunda línea ingresa la secuencia transversal en orden del binario; árbol.

Salida

Emite la secuencia transversal posterior al orden del árbol binario.

Ejemplo de entrada

ABDCEF

BDAECF

Ejemplo de salida

DBEFCA#include?

#include?

#define?MAX?53

usando?namespace?std;

typedef?char? Elem_Type;

typedef?struct?BiTree

{

Elem_Type?data;//data

struct?BiTree?*Lchild; //Niño izquierdo

struct?BiTree?*Rchild;//Niño derecho

}BiTree;?//¿La longitud de la matriz donde buscar?

int?Search_Num(Elem_Type?num,Elem_Type?*array,int?len)

{

for(int?i=0;?i

if(array[i]?==?num) return?i;

//return?-1;//no encontrado

} ?//¿Recorrido en orden anticipado? Recorrido en orden, longitud de matriz en orden

BiTree?*Resume_BiTree(Elem_Type?*front,Elem_Type?*center,int?len)

{

if(len?<=?0) return?NULL;

BiTree?*temp?=?new?BiTree;

temp->datos?=? *frente;

int?index?=?Search_Num(*front,center,len);

temp->Lchild?=?Resume_BiTree(frente +1,centro,índice) ;

temp->Rchild?=?Resume_BiTree(front+index+1,center+index+1,len-index-1);

return?temp;

}

void?PostOrderTraverse(BiTree?*root)//Recorrido posterior al pedido

{

if (?root?!=?NULL )

{

PostOrderTraverse(root->Lchild);

PostOrderTraverse(root->Rchild);

cout<data;

}

}

int?main(void)

{

Elem_Type? *preorder?=?new?Elem_Type?[MAX];//preorder

Elem_Type?*inorder?=?new?Elem_Type?[MAX];//inorder

cin>>preorder;cin>>inorder;

BiTree?*root?=?Resume_BiTree(preorder,inorder,strlen(inorder));

PostOrderTraverse (raíz);

p>

cout<

retorno?0;

}

/******************************************

¿Problema?id:?

Nombre?de?usuario:?

Resultado:?Aceptado?

¿Tomar?Memoria:?444K?

¿Tomar?Tiempo:?0MS?

¿Enviar?Tiempo:?2014-05-16?22:52:07?

****** ** *******************************/