ORDENAR DOS LISTAS Y SACAR UNA TERCERA LISTA DE ESTE ORDEN
Buenas tardes, me presento como Yesid Alfonso Najera de Colombia, soy estudiante de 2 semestre de Ingeniería Mecatronica y ahora que estoy pasando por un poco de programación me dejaron esto: Dadas dos listas enlazadas dobles ya ordenadas cree una tercera lista ordenada con los elementos de ambas listas,,, Digamos que las listas son Lista 1 y Lista 2
La Lista 1 tiene los valores =--[3]--><--[7]--><--[10]--=
La Lista 2 tiene los valores =--[1]--><--[9]
LAS CUALES SE TIENEN QUE ORDENAR Y DAR UNA TERCERA LISTA QUE CONTENGA LOS VALORES DE LAS 2 ANTERIORES ""
Lista 3 =--[1]--><--[3]--><--[7]--><--[9]--><--[10]--=
En su respectivo orden y teniendo en cuenta que son NODOS enlazados entre si,,, de antemano Gracias! (LAS FLECHAS QUIEREN DECIR QUE SON ESTÁN EN AMBAS DIRECCIONES O SEA LOS ENLACES, LOS """=""" SON LOS NULL Y LOS CUADROS QUE SON NODOS) //TRABAJAR (HACER) CON PSEUDOCODIGO NO CON JAVA//
- NajeraNajera's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Tienes que recorrer ambas
Tienes que recorrer ambas listas e insertar el elemento que sea menor hasta que recorras las dos listas.
Se me ocurre algo así
dos = [1,9]
i = 0
j = 0
while ( true ) {
if ( uno[i] < dos[i] ) { // inserta el menor en la lista
tres.add( uno[i] )
i = i + 1
} else {
tres.add( dos[j] )
j = j + 1
}
if ( i == uno.size() ) { // si se acabo la lista agrega el resto
tres.addAll( dos );
break;
}
if ( j == dos.size() ) {
tres.addAll( uno );
break;
}
}
Saludos
dos iteradores
Iterator iter2 = lista2.iterator;
List nuevaLista = [];
while (iter1.hasNext || iter2.hasNext) {
Elemento e1 = iter1.next;
Elemento e2 = iter2.next;
if (e1 == null) {
nuevaLista.append(e2);
} else if (e2 == null) {
nuevaLista.append(e1);
} else if (e1 < e2) {
nuevaLista.append(e1); nuevaLista.append(e2);
} else {
nuevaLista.append(e2); nuevaLista.append(e1);
}
}
OJO: En mi pseudocompilador pseudocompila bien y en el pseudoruntime pseudojala sin pseudobroncas, pero habría que traducirlo a algo de verdad para verificar que realmente funciona como debe.
Gracias!
Muchas Gracias, Esta Perfecto!
Gracias
Esas buenas intensiones, gracias programadores, muchas gracias!