Problema programa con C/C++

Denunciar
Message postés
2
Date d'inscription
jueves, 27 de mayo de 2021
Estatus
Miembro
Última intervención
viernes, 28 de mayo de 2021
-
Message postés
460
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
sábado, 12 de junio de 2021
-
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?

2 respuestas

Message postés
460
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
sábado, 12 de junio de 2021
93
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 ?
Message postés
2
Date d'inscription
jueves, 27 de mayo de 2021
Estatus
Miembro
Última intervención
viernes, 28 de mayo de 2021

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);
}
}


}


Message postés
460
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
sábado, 12 de junio de 2021
93
hola de nuevo, neptune141

esta es mi observación

el error 1:
(creo que ..) esta relacionado con el tipo "Lista" que estás poniendo , osea, no encuentra el tipo "Lista" o falta declararla

el error 2:
- solo quita el signo de punto y coma ( ; ) de la línea 1

¡Suscríbete a nuestra Newsletter!

Recibe nuestros mejores artículos

¡Suscríbete a nuestra Newsletter!