ACTIVIDAD 5

Listas Doblemente Ligadas

1. Investigar el Algoritmo para borrar con listas doblemente ligadas

Entregables: 

  • Los algoritmos
  • Prueba de Escritorio
  • Diseñar un programa en uno de los lenguajes que manejen hasta el momento

Algoritmo y Prueba de Escritorio

Programa en Java

Clase Lista Doble

package ListasDobles;

public class ListaDoble {

private Nodo inicio;

private Nodo fin;

public ListaDoble() {

inicio = null;

fin = null;

}

public void insertarInicio(String dato) {

if (inicio == null) {

inicio = new Nodo(dato,null,null);

fin = inicio;

}else {

Nodo nuevo = new Nodo(dato,null,inicio);

inicio.setAnterior(nuevo);

inicio = nuevo;

}

}

public void insertarFin(String dato) {

if (inicio == null) {

fin = new Nodo(dato,null,null);

inicio = fin;

}else {

Nodo nuevo = new Nodo(dato,fin,null);

fin.setSiguiente(nuevo);

fin = nuevo;

}

}

public String EliminarInicio() {

String dato = inicio.getDato();

inicio = inicio.getSiguiente();

if (inicio != null) {

inicio.setAnterior(null);

}else {

fin = null;

}

return dato;

}

public String EliminarFinal() {

String dato = fin.getDato();

fin = fin.getAnterior();

if (fin != null) {

fin.setSiguiente(null);

}else {

fin = null;

}

return dato;

}

public void MostrarAdelante() {

Nodo temp = inicio;

while (temp != null) {

System.out.println(temp.getDato());

temp = temp.getSiguiente();

}

}

public void MostrarAtras() {

Nodo temp = fin;

while (temp != null) {

System.out.println(temp.getDato());

temp = temp.getAnterior();

}

}

}

Clase Nodo

package ListasDobles;

public class Nodo {

private Nodo siguiente;

private Nodo anterior;

private String dato;

public Nodo (String dat, Nodo ant, Nodo sig) {

siguiente = sig;

anterior = ant;

dato = dat;

}

public Nodo getSiguiente() {

return siguiente;

}

public void setSiguiente(Nodo siguiente) {

this.siguiente = siguiente;

}

public Nodo getAnterior() {

return anterior;

}

public void setAnterior(Nodo anterior) {

this.anterior = anterior;

}

public String getDato() {

return dato;

}

public void setDato(String dato) {

this.dato = dato;

}

}


Clase Principal

package ListasDobles;

public class Principal {

public static void main(String[] args) {

ListaDoble id = new ListaDoble();

id.insertarInicio("a");

id.insertarFin("b");

id.insertarFin("c");

id.MostrarAdelante();

System.out.println("====================");

System.out.println("Eliminando "+id.EliminarFinal());

id.MostrarAdelante();

System.out.println();

System.out.println("====================");

//System.out.println(id.EliminarFinal());

}

}


Referencias bibliográficas:

C, M., S, A., E, I., S, J., & A, E. (2012). Problemas Resueltos de Listas (Primera Edición, Vol. 1). UABCS. https://uabcs.mx/difusion2017/files/libros/pdf/193_20160910055537.pdf

Java ------- Elimine los nodos duplicados en la lista enlazada individualmente (siempre que esté en orden) - programador clic. (2020). programmerclick.com. https://programmerclick.com/article/97461417901/

sindy-valencia.webnode.com.co
Creado con Webnode
CREADO CON WEBNODE ¿Te gusta esta página web? La tuya puede estar online hoy mismo. ¿Te gusta esta página web? La tuya puede estar online hoy mismo. Describe tu idea y la IA creará el primer borrador. Sin programar y gratis al empezar.