Sunteți pe pagina 1din 6

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

Bienvenido a nuestra octava sesin, donde veremos cmo se eliminar nodos en las listas enlazadas y cmo son los programas de implementacin correspondientes en Java. Comenzamos.

Curso : Estructuras de datos

Docente: Ing. Hctor Fiestas Bancayn 1

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

Listas enlazadas en Java (1)


Borrado de nodos Otro algoritmo comn de las listas de enlace simples es el borrado de nodos. Al contrario que la insercin de nodos, slo hay dos casos a considerar:

Borrar el Primer nodo: Asigna el enlace del campo siguiente del nodo referenciado por top a top:
top = top.siguiente; // Referencia al segundo Nodo //(o NULL si hay solamente un Nodo)

La siguiente imagen presenta las vistas anterior y posterior de una lista donde se ha borrado el primer nodo. en esta figura, el nodo B desaparece y el nodo A se convierte en el primer nodo. Antes

Despus

Curso : Estructuras de datos

Docente: Ing. Hctor Fiestas Bancayn 2

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

Borrar cualquier nodo que no sea el primero: Localiza el nodo que precede al nodo a borrar y le asigna el enlace que hay en el campo siguiente del nodo a borrar al campo siguiente del nodo que le precede. El siguiente pseudocdigo borra el nodo D:
temp = top WHILE temp.nombre IS NOT "A" temp = temp.siguiente END WHILE // Asumimos que temp referencia al Nodo A temp.siguiente = temp.siguiente.siguiente // Nodo D no longer exists

La siguiente figura presenta las vistas anterior y posterior de una lista donde se ha borrado un nodo intermedio. En esa figura el nodo D desaparece.

antes

despus

Curso : Estructuras de datos

Docente: Ing. Hctor Fiestas Bancayn 3

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

El siguiente listado representa el equivalente Java a los pseudocdigos de borrado anteriores:


// SLLDelDemo.java class SLLDelDemo { static class Nodo { String nombre; Nodo siguiente; } public static void main (String [] args) { En las siguientes lneas se construye la lista simplemente enlazada vista en la sesin anterior (es decir: B A D C) Esto no forma propiamente parte del borrado de nodos Nodo top = new Nodo (); top.nombre = "C"; top.siguiente = null; Nodo temp = new Nodo (); temp.nombre = "D"; temp.siguiente = top; top = temp; temp = new Nodo (); temp.nombre = "A"; temp.siguiente = top; top = temp; temp = new Nodo (); temp.nombre = "B"; temp.siguiente = top; top = temp; mostrar ("Lista enlazada inicial ", top); // 1. Borrar el primer Nodo top = top.siguiente;
Curso : Estructuras de datos Docente: Ing. Hctor Fiestas Bancayn 4

// // // // //

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

mostrar ("Despus de eliminar el primer nodo", top); // Regresar nuevamente B al comienzo temp = new Nodo (); temp.nombre = "B"; temp.siguiente = top; top = temp; // 2.Borrar cualquier Nodo menos el primero // En este ejemplo se borra el nodo que // contiene la letra D temp = top; while (temp.nombre.equals ("A") == false) temp = temp.siguiente; temp.siguiente = temp.siguiente.siguiente; mostrar ("Despus de eliminar el nodo D ",top); } static void mostrar(String msg, Nodo topNodo) { System.out.print (msg + " "); while (topNodo != null) { System.out.print (topNodo.nombre + " "); topNodo = topNodo.siguiente; } System.out.println (); } }

Cuando ejecute SLLDelDemo, observar la siguiente salida:


Lista enlazada inicial B A D C Despus de eliminar el primer nodo
Curso : Estructuras de datos

A D C

Docente: Ing. Hctor Fiestas Bancayn 5

Universidad Los Angeles de Chimbote

Sistema de Educacin Virtual

Despus de eliminar el nodo D

B A C

Esto es todo por ahora. Hemos visto como se borran nodos en las listas enlazadas. Como tarea, debes realizar la tarea que te indico en la sesin correspondiente. Ten en cuenta que en la plataforma moodle le he puesto fecha lmite de entrega que debes respetar para no tener problemas al subir tu archivo. Buena suerte y hasta la siguiente sesin.

(1)

Basado en structuras de Datos y Algoritmos en Java

Autor: Jeff Friesen Traductor: Juan Antonio Palos

(http://www.programacion.com/java/tutorial/jap_data_alg/4/)

Curso : Estructuras de datos

Docente: Ing. Hctor Fiestas Bancayn 6

S-ar putea să vă placă și