Pasos para abordar los algoritmos de listas enlazadas
Pasos para abordar los algoritmos de listas enlazadas
1.- Creamos un paquete (package) Listas_Enlazadas.
2.- Creamos la clase Listas_Enlazadas
3.- Dentro del mismo paquete , creamos la clase Nodo.
4.- Creamos los siguientes atributos para la clase
package listas_enlazadas;
public class Nodo {
int dato;
Nodo siguiente;
public Nodo (int dato) {
this.dato = dato;
this.siguiente = null;
}
}
5.- El constructor va a ser:
package listas_enlazadas;
public class Listas_Enlazadas {
private Nodo primero;
private int size;
public Listas_Enlazadas() {
this.primero = null;
this.size = 0;
}
6.- Verificamos si la lista esta vacia con el método listaVacia.
public void ListaVacia() {
if (primero==null) {
System.out.print("La lista esta vacia");
}else {
System.out.print("La lista tiene informacion");
}
}
7.- Verificamos usando el main acción _try_
8.- Agregamos un nodo a la lista
public void agregarNodo(int dato) {
Nodo nuevo = new Nodo(dato);
nuevo.siguiente = primero; Se ubica en el primer nodo
primero = nuevo; //el nodo nuevo lo coloca de primero
size++;
}
9.- El método nos indica el tamaño de la lista
public int Size() {
return size;
}
10.- Este método nos muestra la información que mandamos imprimir
public void Listar() {
Nodo actual = primero;
while( actual!=null) {
System.out.print("["+actual.dato+"]->");
actual = actual.siguiente;
}
}
Resultado
La lista esta vacía
[5]->[4]->[3]->[2]->[1]->Tamaño 5
La lista tiene información
10.- El main para realizar las pruebas….
public static void main(String[] args) {
Listas_Enlazadas lista= new Listas_Enlazadas();
lista.ListaVacia();
System.out.println("");
lista.agregarNodo(1);
lista.agregarNodo(2);
lista.agregarNodo(3);
lista.agregarNodo(4);
lista.agregarNodo(5);
lista.Listar();
System.out.println("Tama;o " + lista.Size());
System.out.println("");
lista.ListaVacia();
}
11.- agregamos nodos y lo vamos acomodando de menor a mayor
Se toma el método de agregar Nodo y se hacen las modificaciones
public void agregarNodo(int dato) {
Nodo nuevo = new Nodo(dato);
Nodo valor1, valor2;
if (primero == null) {
primero = nuevo;
nuevo.siguiente = null;
}else {
valor1 = primero;
while(valor1 != null) {
valor2 = valor1.siguiente;
if (nuevo.dato <= valor1.dato){
nuevo.siguiente = primero;
primero = nuevo;
break;
}else {
if (nuevo.dato > valor1.dato && valor2 == null) {
valor1.siguiente = nuevo;
nuevo.siguiente = null;
break;
}else {
if (valor1.dato < nuevo.dato && valor2.dato >= nuevo.dato)
{ valor1.siguiente = nuevo;
nuevo.siguiente = valor2;
break;
}else {
valor1=valor1.siguiente;
}
}
} }
Resultado
La lista esta vacia
[1]->[2]->[3]->[4]->[5]->Tama�o 0
La lista tiene informacion
12.- despues del metodo de la acción 9
public int Size() {
return size;}
Agregamos la eliminacion del primer nodo.
}
public void eliminaPrimero() {
primero = primero.siguiente;
}
public void eliminaUltimo() {
Nodo anterior = primero;
Nodo actual = primero;
while(actual.siguiente!= null) {
anterior = actual;
actual = actual.siguiente;}
anterior.siguiente = null;
}
Probamos con el main
10.- El main para realizar las pruebas….
public static void main(String[] args) {
Listas_Enlazadas lista= new Listas_Enlazadas();
lista.ListaVacia();
System.out.println("");
lista.agregarNodo(1);
lista.agregarNodo(2);
lista.agregarNodo(3);
lista.agregarNodo(4);
lista.agregarNodo(5);
lista.Listar();
System.out.println("Tama;o " + lista.Size());
System.out.println("");
Lista.eliminaUltimo();
lista.ListaR();
}
Comentarios
Publicar un comentario