Problema programa con C/C++

Cerrado
neptune141 Mensajes enviados 4 Fecha de inscripción jueves, 27 de mayo de 2021 Estatus Miembro Última intervención lunes, 25 de octubre de 2021 - 27 may 2021 a las 05:32
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 - 2 jun 2021 a las 23:58
Tengo que hacer esto y no tengo idea.

Realizar los siguientes programas aplicando listas

Ingresar dos listas de enteros, luego ordenar (de forma ascendente) y luego devuelva una nueva lista como unión de ambas con sus elementos ordenados de la misma forma.
Imprimir los elementos de una lista enlazada de enteros en orden inverso a partir de una posición n.

¿Alguna ayuda?
Consulta también:

2 respuestas

misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
27 may 2021 a las 18:45
Hola , neptune141

Déjame desmenuzar la info, para ver si entendí

Ingresar dos listas de enteros, luego ordenar (de forma ascendente) de N elementos, supongo

luego devuelva una nueva lista como unión de ambas con sus elementos ordenados de la misma forma., o sea unir las 2 listas anteriores y ordenarlas ( de forma ascendente ), supongo

Imprimir los elementos de una lista enlazada de enteros en orden inverso a partir de una posición n. una lista enlazada de num. enteros, ( ya proporcionada , supongo ), y supongo que debes ordenarlas en orden inverso a la que ya esta, a partir de una posición dada

correcto ?
0
neptune141 Mensajes enviados 4 Fecha de inscripción jueves, 27 de mayo de 2021 Estatus Miembro Última intervención lunes, 25 de octubre de 2021
28 may 2021 a las 01:26
Hice este codigo, en las imagenes de abajo estan los errores que me aparecen en la compilacion.

Lista = Mezcla2(Lista l1, Lista l2);
{
Lista L;
int Posicion p1,p2;
int aux1,aux2;

//En la lista L guardaremos el resultado/
L=CrearLista(sizeof(int));

//Utilizamos p1 y p2 para recorrer las dos listas/
p1=PrimeroLista(l1);
p2=PrimeroLista(l2);

//Obtenemos los elementos apuntados por p1 y p2 ,el menor/
//de ellos se inserta en el resultado y se adelanta en una/
/*posicion.Se repite el proceso hasta que una lista queda */
/*sin elementos (cuando p1 o p2 llegan al final) */

while (p!=FinLista(l1)&& p2!=FinLista(l2)){
Recuperar(&aux1,p1,l1);
Recuperar(&aux2,p2,l2);
if (aux1 < aux2){
p1=Siguiente(p1,l1);
Insertar(&aux1,FinLista(L),L);
}
else{
p2=Siguiente(p2,l2);
Insertar(&aux2,FinLista(L),L);
}
}

//Si p1 no ha llegado al final hay que vaciar l1 al final/
//de la lista resultado/
While (p1!=FinLista(l1)){
Recuperar(&aux1,p1,l1);
p1=Siguiente(p1,l1);
Insertar(&aux1,FinLista(L),L);
}

//Si p2 no ha llegado al final hay que vaciar l2 al final/
//de la lista resultado/
while (p2!=FinLista(l2)){
Recuperar(&aux2,p2,l2);
p2=Siguiente(p2,l2);
Insertar(&aux2,FinLista(L),L);
}

/*Devolvemos L como resultado estando ya l1 y l2 vacias */
return L;

}

void imprimeInverso(Posicion p,Lista l)
{
int aux;

if(p!=FinLista(l)){
imprimeInverso(Siguiente(p,l),l);
Recuperar(&aux,p,l);
printf("%d",aux);
}
}


}


0