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

Entradas populares de este blog

¿Cómo referenciar fuentes electrónicas?

Diez historias inquietantes de la tecnología