“Conocimiento Programación>Programación Java

Cómo combinar dos listas ADT Ordenado

2011/1/6
un tipo abstracto de datos ( TAD ), una lista o una lista vinculada como se le llama comúnmente , es una de las estructuras de datos fundamentales de la informática y una de las primeras alternativas a la simple array aprendido por un estudiante de informática . A pesar de que sacrifica la capacidad de moverse a la mitad de la lista sin tener que buscar a través de la primera lista , la lista ADT hace trivialmente fácil de ampliar y reducir el tamaño de los datos almacenados. Este código se implementa en Java , ya incorporado en la estructura de datos vinculada de Java nos permite llegar directamente al punto , pero la misma lógica podría aplicarse con la modificación mínima en cualquier otro lenguaje similar a C . Instrucciones
1

Crea tus dos listas enlazadas e inicializar con algunos datos ordenados pegando lo siguiente en un archivo Java:

LinkedList list1 = new LinkedList ( ) ;

LinkedList list2 = new LinkedList ();

for (int x = 0 ; x < 100 ; x + +) tiene dos listas enlazadas llenos de números aleatorios que han sido ordenados
2

Crear una nueva lista enlazada para mantener la lista combinada pegando el siguiente : .

LinkedList fusionado = new LinkedList ();
3

Establecer una simple bucle while . Este bucle se procederá siempre y cuando ambas listas tienen al menos un elemento en ellos, y se moverá el más pequeño de los elementos principales de la lista resultante de la fusión : .

//Si bien ambas listas no están vacías

while (! list1.isEmpty () && ! ​​list2.isEmpty () ) {

if ( list1.peek () < = list2.peek ()) {

fusionó . add ( list1.pop ());

} else {

merged.add ( list2.pop ()); }


}

el comando " Peek " se ve en el elemento en el frente de la lista, mientras que el " Pop ", ambas se ve en el elemento y lo elimina . Cuando se hace la comparación, sólo desea dar un vistazo a la parte superior de la lista para ver que es más pequeño . Cuando llega el momento de unificar las listas , quiere quitarle el valor superior y lo puso en las nuevas listas .
4

terminar el trabajo. Tan pronto como sea lista está vacía , no hay ninguna necesidad de seguir haciendo comparaciones . Por lo tanto , los viejos extremos de bucle , y otro bucle se crea para llenar el resto de la lista resultante de la fusión con los datos restantes de la última lista :

//Mientras que la primera lista no está vacía

mientras {

merged.add ( list1.pop ()); }

( list1.isEmpty ( !))

//mientras que la segunda lista no está vacía .

while {

merged.add ( list2.pop ()); }

( list2.isEmpty ( !))
5

Imprima los resultados para que pueda inspeccionar la lista combinada y asegurarse de que funcionaba correctamente :

int x = 1 ;

de (Doble y: fusionado ) {

sistema. out.println (x + " " + y);

x + + ; }



Programación Java
Códigos Basic Java
Cómo instalar Java
Java Quicktime Tutorial
Cómo descargar e instalar mods en Minecraft Java
Cómo eliminar los duplicados de una matriz en Java
Cómo mostrar porcentajes en Java
Cómo actualizar el TableModel desde otro hilo
Cómo dar formato a una tabla en TextView para Android
Conocimiento de la computadora © http://www.ordenador.online