Una ayudita para una lista enlazada
Publicado por carlos (4 intervenciones) el 14/06/2005 16:44:15
Hola a todos: Ante todo no quiero que me acuseis de que pretendo que me hagais la codificación no busco eso, sólo quiero saber como se os ocurre a vosotros hacer este problema.
Mi consulta es esta, estoy estudiando para los examenes y haciendo ejercicios de estructuras de datos he dado con un problema de lista enlazada y no consigo terminar de ver una solución válida para el problema, para todo lo que se me ocurre invalido alguna de las cosas que no me permiten descritas más abajo.
Me dan una lista de enteros en la cual en la primera parte de esta son numeros pares ordenados ascendentemente y en la segunda parte de numeros impares tb ordenados ascendentemente, y piden devolver la lista totalmente ordenada.
Solo se permiten dos recorridos en la lista, so puedo usar estructuras de datos auxiliares y en la lista no hay numeros repetidos y no puedo usar NEW ni DISPOSE.
la declaracion de la lista para que os hagais una idea es la siguiente:
Tlista=^Elem
Elem = record
Clave:integer;
Sig:Tlista
Un ejemplo:
Se nos da: 10->20->30->40->50->11->25->47
Nos pide: 10->11->20->25->30->40->47->50
Mi pensamiento es hacerlo de forma recursiva, ir recorriendo la lista comparando las claves del elem actual con el siguiente preguntando si es mayor hasta encontrar uno que sea menor lo que quiere decir que hemos llegado al final de los pares pero luego no se me ocurre como ir colocandolos ordenadamente.
Perdon por el tostón y gracias.
Mi consulta es esta, estoy estudiando para los examenes y haciendo ejercicios de estructuras de datos he dado con un problema de lista enlazada y no consigo terminar de ver una solución válida para el problema, para todo lo que se me ocurre invalido alguna de las cosas que no me permiten descritas más abajo.
Me dan una lista de enteros en la cual en la primera parte de esta son numeros pares ordenados ascendentemente y en la segunda parte de numeros impares tb ordenados ascendentemente, y piden devolver la lista totalmente ordenada.
Solo se permiten dos recorridos en la lista, so puedo usar estructuras de datos auxiliares y en la lista no hay numeros repetidos y no puedo usar NEW ni DISPOSE.
la declaracion de la lista para que os hagais una idea es la siguiente:
Tlista=^Elem
Elem = record
Clave:integer;
Sig:Tlista
Un ejemplo:
Se nos da: 10->20->30->40->50->11->25->47
Nos pide: 10->11->20->25->30->40->47->50
Mi pensamiento es hacerlo de forma recursiva, ir recorriendo la lista comparando las claves del elem actual con el siguiente preguntando si es mayor hasta encontrar uno que sea menor lo que quiere decir que hemos llegado al final de los pares pero luego no se me ocurre como ir colocandolos ordenadamente.
Perdon por el tostón y gracias.
Valora esta pregunta


0