Tecnología

Inicio

Conceptos Java: Lab lista enlazada

Las listas enlazadas son estructuras de datos básicos en la programación. Casi cada lenguaje de programación tiene algún tipo de lista enlazada implementado como una biblioteca, así como muchas formas de construir listas enlazadas. Java no es una excepción. Y mientras que Java puede implementar una lista enlazada, que ayuda a los programadores saben cómo funcionan las listas enlazadas, y lo que hacen. De esta forma, los programadores pueden entender cómo ajustar ellas para ciertas situaciones o optimizarlos para determinados sistemas.

Los nodos

Cada lista enlazada tiene como parte componente de un "nodo", que contiene los datos que se almacenan y una variable que hace referencia al siguiente elemento de la lista. Algunas listas más complejos contienen nodos que hacen referencia a varios otros nodos, pero para la lista básica, la referencia solamente apunta al siguiente nodo de la lista. Los datos almacenados en la lista pueden ser de cualquier tipo.

Clase lista enlazada

En Java, una lista enlazada contendrá, como mínimo, dos clases: la clase principal de la lista, y una clase de nodo. El siguiente ejemplo ilustra esta diferencia. En esta lista, la clase nodo reside como un miembro de la clase privada de la lista, de modo que sólo la lista puede manipular nodos. Para que un usuario pueda añadir o eliminar elementos, tiene que ir a través de la interfaz de la clase:
LLIST public class {

Nodo privada clase estática {
int datos;
Nodo siguiente;
}

}

Inserción en la lista de

Cada lista tendrá un método de inserción. Este método tendrá un valor para el usuario, en este caso un número entero, e insertar un nodo que contiene ese valor a lo largo de la lista. Esto también significa que cada lista contendrá una variable simple que representará un nodo de cabeza, de modo que la lista sabe cuando está vacío o cuando el usuario se encuentra al principio de la lista:
Nodo principal = null;

pública insertNode void (int value) {

temp = nodo nuevo nodo ();
new.data = valor;

si (la cabeza == null) {
la cabeza = temp;
temp.next = null;
}

más{
Nodo actual = cabeza;

mientras que (current.next! = null) {
current.next == actual;
}

current.next = temp;
temp.next = null;
}

Retirar de la Lista

Extracción de la lista es un poco más complicado. En una simple lista, el usuario sólo se sumará al final de la lista. Con la eliminación, se puede eliminar un nodo de la media. En este caso, el programador tiene que asegurarse de que la lista se mantiene coherente asegurándose de que el nodo anterior al nodo eliminado hace referencia al nodo después del nodo eliminado:
pública removeNode void (int value) {

if (! cabeza = null) {
Nodo actual = head.next;
pista de nodo = cabeza;

while (! actual! = null && current.data = valor) {
rastro = corriente;
actual = current.next;
}

si (valor == current.data) {
trail.next = current.next;
actual = null;
regreso;
}
else if (nula == actual) {
System.out.println ( "Elemento no en la lista");
regreso;
}
}
}