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
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar