Professional Documents
Culture Documents
Una lista circular es una coleccin de elementos llamados nodos, organizados de tal manera que el siguiente del ultimo nodo apunta al nodo cabecera
Lista circular
51 dato siguiente
El campo siguiente del ultimo nodo, aquel cuyo dato es 51, apunta al nodo cabecera
Una lista circular es una estructura de datos dinmica que permite almacenar cualquier cantidad de nodos. Tiene la ventaja de que procesos de bsqueda o de manipulacin de los datos que requieran recorrer la lista completa ms de una vez se realizan eficientemente
Lista circular
Lista circular
Insertar nodo al inicio( La lista circular
est vaca)
Se crea un nuevo nodo con el dato que se desee colocar y con siguiente al nodo cabecera El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado W
Lista circular
Insertar nodo al inicio( La lista no
W
est vaca)
Lista circular
Lista circular
Lista circular
Imprimir datos
Lista circular
Est una lista vaca?
Cuando la lista est vaca el campo siguiente de la cabecera es null
Lista circular
class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) { dato=o; siguiente=null; } Nodo(Object o, Nodo n) { dato=o; siguiente=n; } }
Cada nodo se representa por medio de dos campos:
Lista circular
Lista circular
circular vaca?
Cuando la lista est vaca el campo siguiente de la cabecera es null
return false; } }
Lista circular
Lista circular
void insertar(Object o) { Nodo nuevo=new Nodo(null);
if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=cabecera; cabecera.siguiente=nuevo; } else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; } }
dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera
Al nodo cabecera se le asigna
Lista circular
Una lista doblemente enlazada es una coleccin de elementos llamados nodosDE Un nodoDE tiene tres campos: un campo izquierda, un campo dato y un campo derecha. Los campos izquierda y derecha son apuntadores a los nodos ubicados en el lado izquierdo y el derecho de cada nodo
51
izq. dato der. izq. dato der.
99
izq. dato der.
Se mantiene un nodoDE cabecera, cuyo campo izquierda apunta a null, no tiene valor y cuyo campo derecha apunta al nodoDE que tiene el primer dato El campo derecha del ultimo nodoDE apunta a null
Una lista doblemente enlazada es una estructura de datos dinmica que permite almacenar cualquier cantidad de nodos. Tiene la ventaja de que estando en cualquier nodo se puede acceder al nodo que est tanto a la izquierda como a la derecha
est vaca)
Se crea un nuevo nodoDE con el dato que se desee colocar, campo izquierda apuntado al nodo cabecera y campo derecha apuntando a null El campo derecha del nodo cabecera pasa de ser null a ser el nodo que estamos insertado
no est vaca)
Se crea un nuevo nodo con el dato que se desee colocar, campo izquierda
apuntando al nodo cabecera y campo derecha apuntado al nodo que apunta el campo derecha del nodo cabecera
Al campo izquierda del nodo apuntado por derecha del nodo cabecera se
Al nodo cabecera se le asigna como derecha, la derecha del primer nodo Al campo izquierda del segundo nodo se le asigna como izquierda el
Lista doblemente enlazada public class NodoDE { NodoDE izquierda; Object dato; NodoDE derecha;
public NodoDE(Object o) { izquierda = null; dato = o; derecha = null; }
Crear listaDE
class ListaC{ Nodo cabecera; Al crear una listaDE,
circular vaca?
Cuando la lista est vaca el campo derecha de la cabecera es null
public void insertarDE(Object o) { if (esVacia()){ NodoDE nuevo = new NodoDE(o); cabecera.derecha=nuevo; nuevo.izquierda=cabecera; nuevo.derecha=null; }
que se desee colocar, campo izquierda apuntando al nodo cabecera y campo derecha apuntado al nodo que apunta el campo derecha del nodo cabecera apuntado por derecha del nodo cabecera se le asigna el nodo que estamos insertando
Al nodo cabecera se le asigna como
Al nodo cabecera se le