Reto 3

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.

Solución

Seudocódigo

clase Nodo:

función iniciar(dato)

self.dato = dato

self.siguiente = nulo

self.anterior = nulo

clase ListaDoble:

función iniciar()

self.primero = nulo

función agregar(dato)

nuevo_nodo = Nodo(dato)

si self.primero es nulo entonces

self.primero = nuevo_nodo

sino

nodo_actual = self.primero

mientras nodo_actual.siguiente no sea nulo hacer

nodo_actual = nodo_actual.siguiente

fin mientras

nodo_actual.siguiente = nuevo_nodo

nuevo_nodo.anterior = nodo_actual

fin si

función borrar(dato)

si self.primero es nulo entonces

retornar

fin si

si self.primero.dato es igual a dato entonces

self.primero = self.primero.siguiente

si self.primero no es nulo entonces

self.primero.anterior = nulo

fin si

retornar

fin si

nodo_actual = self.primero

mientras nodo_actual.siguiente no sea nulo hacer

si nodo_actual.siguiente.dato es igual a dato entonces

nodo_actual.siguiente = nodo_actual.siguiente.siguiente

si nodo_actual.siguiente no es nulo entonces

nodo_actual.siguiente.anterior = nodo_actual

fin si

retornar

fin si

nodo_actual = nodo_actual.siguiente

fin mientras

fin función

fin clase

Mientras nodo_actual no sea nulo:

imprimir nodo_actual.dato

nodo_actual = nodo_actual.siguiente

Finmientras


¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar