Guía para resolver problemas de algoritmos de listas enlazadas
1.- Creamos el proyecto ListaEnlazadas,
package listaenlazadas;
public class ListaEnlazadas {
public static void main(String[] args) {
}
}
1.1 Agregamos al main o método principal, el menú de operaciones
public static void main(String[] args) {
ListasEnlazadas lista= new ListasEnlazadas();
Scanner imprime = new Scanner (System.in);
int opcion = 0;
do {
System.out.println("Operaciones a realizar");
System.out.println(" 1.- Agregar nodo ");
System.out.println(" 2.- Eliminar nodo al inicio");
System.out.println(" 3.- Eliminar nod o al final");
System.out.println(" 4. Buscar Nodos");
System.out.println(" 5. Listar Nodos");
System.out.println(" 6.- Verificar Lista");
System.out.println("");
System.out.println("Operaciones a realizar");
opcion = imprime.nextInt();
switch(opcion) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
System.out.println(" 5. Verificando si la lista tiene datos");
lista.ListaVacia();
break;
default:
}
}while(opcion < 7);
2.- Creamos el constructor de Nodo.
package listasenlazadas; // paquete
import java.util.Scanner; // Libreria para imprimir
public class ListasEnlazadas {
private Nodo primero;
private int size;
public ListasEnlazadas() {
this.primero = null;
this.size = 0;
}
3.- Método para chequear si la lista tiene información.
public void ListaVacia() {
if (primero==null) {
System.out.print("La lista esta vacia");
}else {
System.out.print("La lista tiene información");
}
}
Prueba del método ListaVacia (Verificación de existencia de información en la lista)
Usamos el método main (Principal), usamos el punto 6 correspondiente a la verificación.
Está dado en el punto 6 del case.
public static void main(String[] args) {
ListasEnlazadas lista= new ListasEnlazadas();
Scanner imprime = new Scanner (System.in);
int opcion = 0;
do {
System.out.println("Operaciones a realizar");
System.out.println("Operaciones a realizar");
System.out.println(" 1.- Agregar nodo ");
System.out.println(" 2.- Eliminar nodo al inicio");
System.out.println(" 3.- Eliminar nodo al final");
System.out.println(" 4. Buscar Nodos");
System.out.println(" 5. Listar Nodos");
System.out.println(" 6.- Verificar Lista");
System.out.println("");
System.out.println("Operaciones a realizar");
opcion = imprime.nextInt();
switch(opcion) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
System.out.println(" 5. Verificando si la lista tiene datos");
lista.ListaVacia();
break;
default:
}
}while(opcion < 7);
4.- Método para agregar Nodos…
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++;
}
Prueba del método agregarNodo
public static void main(String[] args) {
ListasEnlazadas lista= new ListasEnlazadas();
Scanner imprime = new Scanner (System.in);
int opcion = 0;
do {
System.out.println("Operaciones a realizar");
System.out.println(" 1.- Agregar nodo ");
System.out.println(" 2.- Eliminar nodo al inicio");
System.out.println(" 3.- Eliminar nodo al final");
System.out.println(" 4. Buscar Nodos");
System.out.println(" 5. Listar Nodos");
System.out.println(" 6.- Verificar Lista");
System.out.println("");
System.out.println("Operaciones a realizar");
opcion = imprime.nextInt();
switch(opcion) {
case 1:
System.out.println("Ingrese el nodo");
System.out.println("Ingrese el dato del nodo");
int dato = imprime.nextInt();
lista.agregarNodo(dato);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
System.out.println(" 5. Verificando si la lista tiene datos");
lista.ListaVacia();
break;
default:
}
}while(opcion < 7);
}
}
5.- Método para eliminar el primero de la lista
public void eliminarPrimero() {
primero = primero.siguiente;
}
Prueba del método EliminarPrimero, corresponde a eliminar el primer nodo de la lista.
public static void main(String[] args) {
ListasEnlazadas lista= new ListasEnlazadas();
Scanner imprime = new Scanner (System.in);
int opcion = 0;
do {
System.out.println("Operaciones a realizar");
System.out.println(" 1.- Agregar nodo ");
System.out.println(" 2.- Eliminar nodo al inicio");
System.out.println(" 3.- Eliminar nodo al final");
System.out.println(" 4. Buscar Nodos");
System.out.println(" 5. Listar Nodos");
System.out.println(" 6.- Verificar Lista");
System.out.println("");
System.out.println("Operaciones a realizar");
opcion = imprime.nextInt();
switch(opcion) {
case 1:
System.out.println("Ingrese el nodo");
System.out.println("Ingrese el dato del nodo");
int dato = imprime.nextInt();
lista.agregarNodo(dato);
break;
case 2:
System.out.println(" 2. Elimina al inicio de la lista");
lista.eliminarPrimero();
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
System.out.println(" 5. Verificando si la lista tiene datos");
lista.ListaVacia();
break;
default:
}
}while(opcion < 7);
}
}
6.- Método para eliminar el último en la lista
public void eliminarUltimo() {
Nodo anterior = primero;
Nodo actual = primero;
while(actual.siguiente != null) {
anterior = actual;
actual=actual.siguiente;
}
anterior.siguiente=null;
}
Prueba del método EliminarPrimero, corresponde a eliminar el primer nodo de la lista.
public static void main(String[] args) {
ListasEnlazadas lista= new ListasEnlazadas();
Scanner imprime = new Scanner (System.in);
int opcion = 0;
do {
System.out.println("Operaciones a realizar");
System.out.println(" 1.- Agregar nodo ");
System.out.println(" 2.- Eliminar nodo al inicio");
System.out.println(" 3.- Eliminar nodo al final");
System.out.println(" 4. ");
System.out.println(" 5. Listar Nodos");
System.out.println(" 6.- Verificar Lista");
System.out.println("");
System.out.println("Operaciones a realizar");
opcion = imprime.nextInt();
switch(opcion) {
case 1:
System.out.println("Ingrese el nodo");
System.out.println("Ingrese el dato del nodo");
int dato = imprime.nextInt();
lista.agregarNodo(dato);
break;
case 2:
System.out.println(" 2. Elimina al inicio de la lista");
lista.eliminarPrimero();
break;
case 3:
System.out.println(" 3. Elimina el nodo final de la lista");
lista.eliminarUltimo();
break;
case 4:
break;
case 5:
System.out.println(" 5. Lista la lista de nodos");
lista.Listar();
break;
case 6:
System.out.println(" 5. Verificando si la lista tiene datos");
lista.ListaVacia();
break;
default:
}
}while(opcion < 7);
}
}
7.- Método Listar Nodos
public void Listar() {
Nodo actual = primero;
while(actual!=null) {
System.out.print("["+actual.dato+"]->");
actual = actual.siguiente;
}
}
Comentarios
Publicar un comentario