Dev - C++ - Me ayudan con esta lista pls

 
Vista:
sin imagen de perfil
Val: 33
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Me ayudan con esta lista pls

Publicado por Jorge (24 intervenciones) el 15/08/2021 14:13:45
Hola estoy haciendo un code para automatizar un arbol binario de busqueda, pero bueno el codigo es largo y no importa mucho en si pero pasa que mi programa compila, pero no hace nada a partir de ciertas lineas,

miren pasa que no imprime la linea "Error en 2" solo imprime la "Error en 1" por lo que supongo la asignacion esta mal lo que quiero es copiar las estructuras directamente, pero la varible AUX_2 viene de otra funcion, no del main, no se si ese sea el detalle, no se que pueda ser, el resto del code no importa

void recorridoIzquierda(LIS *ARBOL, LIS *AUX_2){
LIS *P, *AUX_CENTRO;
LIS *AUX_1;
P= ARBOL;





printf("COMIENZA RECORRIDO IZQ");
while(1){


if( (P->IZQUIERDA!=NULL)&&(P->DERECHA!=NULL) ){
printf("empieza primero");
AUX_CENTRO= P;
P= P->DERECHA;
printf("ERROR EN 1");
*AUX_1= *P;
*P= *AUX_2;
printf("ERROR EN 2"); ///// AQUI EL DETALLE
*P= *AUX_CENTRO;
AUX_2->DERECHA= P->DERECHA; AUX_2->IZQUIERDA= P->IZQUIERDA;
printf("ERROR EN 3");
*AUX_2= *P; AUX_2->DERECHA= NULL; AUX_2->IZQUIERDA= NULL;
*P= *AUX_1;
printf("ERROR EN 4");
printf("TERMINA primero");
} else if( (P->IZQUIERDA!=NULL)&&(P->DERECHA==NULL) ){
*AUX_1= *P; AUX_1->DERECHA= NULL; AUX_1->IZQUIERDA= NULL;
AUX_3->DERECHA= P->DERECHA; AUX_3->IZQUIERDA= P->IZQUIERDA;
*P= *AUX_2;
P= P->IZQUIERDA;
*AUX_2= *AUX_1;

} else if( (P->IZQUIERDA==NULL)&&(P->DERECHA==NULL) ){
printf("empieza SEGUNDO");
if( AUX_2->EDAD > P->EDAD){
P->DERECHA= AUX_2;
} else P->IZQUIERDA= AUX_2;
printf("TERMINA SEGUNDO");
break;

} else if( (P->IZQUIERDA==NULL)&&(P->DERECHA!=NULL) ){
AUX_CENTRO= P;
P= P->DERECHA;

*AUX_1= *P;
*P= *AUX_2;
P= AUX_CENTRO;
AUX_1->DERECHA= P->DERECHA; AUX_1->IZQUIERDA= P;
*AUX_2= *P; P->DERECHA= NULL; P->IZQUIERDA= NULL;
*P= *AUX_1;
P->IZQUIERDA= AUX_2;
break;

}
P= P->IZQUIERDA; // VA DESPUES POR SI EL NODO QUE RECIBE ES EL ULTIMNO
}
printf("TERMINA RECORRIDO IZQ");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder