Professional Documents
Culture Documents
Lista
Una lista es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que cada elemento se conecta al siguiente elemento por un enlace o referencia. La idea bsica consiste en construir una lista cuyos elementos, llamados nodos, se componen de dos partes (campos): la primera contiene informacin y es, por consiguiente, un valor de tipo genrico, y la segunda parte es una referencia (denominado enlace) que apunta (enlaza) al siguiente elemento de la lista.
Ejemplo
Una lista enlazada contiene tres elementos, 10, 25, 40. Insertar un nuevo elemento, 4, en la cabeza de la lista. Paso 1
Paso 2
Paso 3
10
11
Hacer que el campo enlace del nuevo nodo apunte al nodo n2, ya que el nodo creado se ubicar justo antes de n2.
La variable referencia anterior tiene la direccin del nodo n1, y eso exige hacer que anterior.elace apunte al nodo creado.
12
13
Etapa 2
Etapa 3
14
15
Bsqueda del nodo que contiene el dato. Se ha de obtener la direccin del nodo a eliminar y la direccin del anterior.
El enlace del nodo anterior que apunte al siguiente nodo del cual se elimina. Si el nodo a eliminar es el cabeza de la lista (primero), se modifica primero para que tenga la direccin del siguiente nodo. Por ltimo, la memoria ocupada por el nodo se libera.
16
Lista Ordenada
La lista ordenada es una lista enlazada a la que se aade la propiedad de ordenacin de sus datos. Por esto, se puede decir que esta clase hereda de una clase Lista. El mtodo de insercin es el mtodo que se modifica, para que luego sea aprovechado ese orden en las otras operaciones.
17
18
Las operaciones son similares a los de una lista simple. En la eliminacin, se debe enlazar mutuamente el nodo anterior y el nodo siguiente del que se borra.
19
Hacer que el campo enlace adelante del nuevo nodo apunte a la cabeza (primer nodo) de la lista original, y que el campo enlace atrs del nodo cabeza apunte al nodo nuevo.
Hacer que cabeza apunte al nuevo nodo que se ha creado.
20
Insertar despus de un nodo Crear un nodo con el nuevo elemento y asignar su referencia a la variable nuevo.
Hacer que el enlace adelante del nuevo nodo apunte al nodo siguiente de n n (o bien a null si n es el ltimo nodo). El enlace atrs del nodo siguiente a n (si n no es el ltimo nodo) tiene que apuntar a nuevo.
Hacer que el enlace adelante del nodo n apunte al nuevo nodo. A su vez, el enlace atrs del nuevo nodo debe de apuntar a n.
21
Listas Circulares
En las listas simples o en las dobles siempre hay un primer nodo (cabeza) y un ltimo nodo (cola). Una lista circular, por propia naturaleza, no tiene principio ni fin. Sin embargo, resulta til establecer un nodo a partir del cual se acceda a la lista y as poder acceder a sus nodos. El apuntador de acceso a una lista circular (lc), normalmente apunta al ltimo nodo aadido a la estructura. sta convencin puede cambiar, ya que en la estructura circular no hay primero ni ltimo.
23