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) { p>
//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;
}