style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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//

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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í

uno = [3,7,10]
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

Imagen de ezamudio

dos iteradores

Iterator iter1 = lista1.iterator;
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!

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">