Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

2
Eliminar un nodo intermedio de una lista doblemente enlazada De nuevo tenemos los dos casos posibles, que el nodo a borrar esté apuntado por Lista o que no. Si lo está, simplemente hacemos que Lista sea Lista->anterior o Lista- >siguiente Se trata de un caso más general de los dos casos anteriores.  Lista doblemente enlaz ada 1. Si nodo ap unta a Lis ta, hac emo s que Lista apunt e a Lis ta- >an ter ior (o Lista->siguiente. !. "ace mos que nod o->a nterio r->s iguien te apunte a nod o->s iguie nte. #. "ace mos que nod o->s iguie nte->anter ior apu nte a nodo-> anteri or. $. %or ramos el nodo a pun tado por nodo.  Elemento e liminado public boolean delete(int num)  {  nodo anterior=null;  nodo actual=primero;  while(actual!=ultimo)  {  if(actual.dato==num)  {  if(anterior==null)  {  primero=actual.next;  primero.ant=null;  }  else{  anterior.next=actual.next;  nodo temporal;  temporal=actual.next;  temporal.ant=anterior;  }  return true;  }

Transcript of Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

Page 1: Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

8/15/2019 Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

http://slidepdf.com/reader/full/eliminar-un-nodo-intermedio-de-una-lista-doblemente-enlazada 1/2

Eliminar un nodo intermedio de una lista doblemente enlazada

De nuevo tenemos los dos casos posibles, que el nodo a borrar esté apuntado por Listao que no. Si lo está, simplemente hacemos que Lista sea Lista->anterior o Lista->siguiente

Se trata de un caso más general de los dos casos anteriores.

 Lista doblemente enlazada

1. Si nodo apunta a Lista, hacemos que Lista apunte a Lista->anterior (oLista->siguiente.

!. "acemos que nodo->anterior->siguiente apunte a nodo->siguiente.

#. "acemos que nodo->siguiente->anterior apunte a nodo->anterior.$. %orramos el nodo apuntado por nodo.

 Elemento eliminado

public boolean delete(int num)

  {

  nodo anterior=null;

  nodo actual=primero;

  while(actual!=ultimo)

  {

  if(actual.dato==num)

  {

  if(anterior==null)

  {

  primero=actual.next;

  primero.ant=null;

  }

  else{

  anterior.next=actual.next;

  nodo temporal;

  temporal=actual.next;

  temporal.ant=anterior;

  }

  return true;

  }

Page 2: Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

8/15/2019 Eliminar Un Nodo Intermedio de Una Lista Doblemente Enlazada

http://slidepdf.com/reader/full/eliminar-un-nodo-intermedio-de-una-lista-doblemente-enlazada 2/2

  anterior=actual;

  actual=actual.next;

  }

  if(num==ultimo.dato)

  {

  ultimo=actual.ant;

  return true;

  }

  return false;

  }