Red de conocimientos turísticos - Conocimientos sobre calendario chino - Cinco preguntas sobre programación de estructuras de datos descritas en lenguaje Java; proporcione respuestas detalladas

Cinco preguntas sobre programación de estructuras de datos descritas en lenguaje Java; proporcione respuestas detalladas

Pregunta 1:

//Utilice los métodos de herramienta proporcionados por la colección

public static Listlt; merge(Listlt; Integergt; a, Listlt; Integergt ; b) {

//a, b not null

//Ponlos todos en un conjunto para que los elementos se fusionen

Setlt; ; set = new HashSetlt; Integergt; (a);

set.addAll

// Coloca los elementos del conjunto en una lista y luego conviértelo en una. array

Integer[] array = new ArrayListlt;Integergt;(set).toArray(new Integer[1]);

//Ordenación ascendente

Matrices .sort(array);

//Convierte la matriz ordenada en una lista

return Arrays.asList(array);

}

// Algoritmo escríbalo usted mismo, a es una lista ascendente, b es una lista descendente

public static Listlt; merge2(Listlt; Integergt; a, Listlt; Integergt; b) {

//a , b no nulo

int aSize = a.size();

int bSize = b.size(); > Listlt; Integergt; resultado = new ArrayListlt;Integergt;();

int aIndex = 0; // La lista ascendente comienza desde el principio

int bIndex = bSize - 1; / La lista descendente comienza desde el final

int aEl

int bEl

// La condición de terminación del bucle es: se ha atravesado la lista aob

while (aIndex lt; aSize amp; amp; bIndex gt; = 0) {

aEl = a.get(aIndex);

bEl = b. get(bIndex);

if (aEl lt; bEl) {

resultado.add(aEl

aIndex; } else {

resultado. add(bEl);

bIndex--;

}

}

// Agregar una lista que no ha sido recorrida los elementos se agregan al resultado (incluido el caso en que cualquier lista es una lista vacía)

if (aIndex lt; aSize) {

for (int i = aIndex; i lt; aSize; i) {

resultado.add(a.get(i));

}

}

else if (bIndex gt; 0) {

for (int i = bIndex; i gt; = 0; i--) {

result.add(b.get(i));

}

}

devolver resultado;

}