Está en la página 1de 16

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO FACULTAD DE CIENCIAS DE LA COMPUTACION

Carrera de Ingeniera Informtica

MATERIA

ESTRUCTURA DE DATOS I

Tema 7. Listas
Docente: Ing. Ubaldo Prez Ferreira E-mail: ubaperez@gmail.com

Santa Cruz de la Sierra Bolivia 2009 - 2012

Listas

Son estructuras de datos secuenciales de 0 o ms elementos de un tipo dado almacenados en memoria. Cada elemento de la lista, excepto el primero, tiene un nico predecesor y cada elemento de la lista, excepto el ltimo, tiene un nico sucesor. El nmero de elementos de la lista se llama longitud. Si tiene 0 elementos se llama lista vaca. En una lista podemos aadir nuevos elementos o suprimirlos en cualquier posicin.

Nodos de una lista enlazada

Cada nodo se divide en reas de contenido (en naranja) y una o ms reas de enlace (en verde). La rea de enlace de A tiene una flecha para indicar que referencian a otro nodo del mismo tipo (o subtipo). La nica rea de enlace de B incorpora una X (Null) para indicar una referencia nula. En otras palabras, B no est conectado a ningn otro nodo

lista de enlace simple

Una lista de enlace simple, es una lista enlazada de nodos, donde cada nodo tiene un nico campo de enlace. Una variable de referencia contiene una referencia al primer nodo, cada nodo (excepto el ltimo) enlaza con el nodo siguiente, y el enlace del ltimo nodo contiene null para indicar el final de la lista.

Especificacin Formal

Structure Lista 1. Define Create() Lista 2. Vacio(Lista) Boolean 3. Primero(Lista)nodo 4. Ultimo(Lista)nodo 5. Siguiente(nodo)nodo 6. Anterior(nodo)nodo 7. Buscar(Lista, valor)nodo 8. Longitud(Lista)int 9. AddA(Lista, valor,nodo)Lista 10. AddD(Lista, valor, nodo) Lista 11. Delete(Lista, valor)Lista

//Crea la Lista // Esta vacia // Primer nodo de la Lista (Tope) // Ultimo Nodo de La Lista (Rear) // Sucesor de un Nodo // Antecesor de un Nodo // Busca un Valor en la Lista // Tamao de la lista // Inserta un valor en la Lista antes de // Inserta un valor en la Lista despus de // Borra un nodo con un Valor de la Lista

Especificacin Formal

L Lista n Nodo, x,y Valor


1. 2. 3. 4. Vacio(Create) ::= True Borrar(Create,x) ::= error Delete(AddD(L, x), y)) ::= if x=y then L Primero(Create) ::= error

Operaciones sobre Listas

Insercin de un nodo:

Recorrido de la lista Bsqueda de un elemento

Eliminacin de un nodo:
Al inicio de la Lista Al final de la Lista Un nodo especfico

Al inicio de la Lista Al final de la Lista Antes de un nodo especfico Despus de un nodo especfico

Insercin de un nodo al inicio de la Listas El nuevo nodo X se coloca al principio de la lista, convirtindose en el primero de la misma.

Tope

Rear

Insercin de un nodo al final de la Listas El nuevo nodo se coloca al final de la lista, convirtindose en el ultimo de la misma.

Tope

Rear

Insercin de un nodo antes de otro El nuevo nodo se coloca antes/despus de otro nodo dado como referencia. Primero se tiene que realizar la bsqueda del nodo de cmo referencia.
Tope Rear

Insercin de un nodo despus de otro El nuevo nodo se coloca antes/despus de otro nodo dado como referencia. Primero se tiene que realizar la bsqueda del nodo de cmo referencia.
Tope Rear

Eliminacin de un elemento o nodo


Eliminacin primer nodo: se quita el primer elemento de la lista, redefiniendo el valor del puntero al nuevo inicio de la lista.

Eliminacin del ltimo nodo: se quita el ltimo nodo de la lista, redefiniendo a null el campo liga o enlace del penltimo nodo de la lista. Para encontrar el penltimo nodo es necesario recorrer la lista. Se redefine el valor del puntero que indica el fin de la lista.

Eliminacin de un elemento o nodo

Eliminacin un nodo con informacin X: se debe buscar al nodo que contenga la informacin dada como referencia (X) y eliminarlo, estableciendo la liga o enlace correspondiente entre su predecesor y su sucesor.

Eliminacin de un elemento o nodo

Recorrido de una Lista La operacin de recorrido consiste en visitar cada uno de los nodos que forman la lista. La visita de un nodo puede definirse por medio de una operacin muy simple (como escribir su valor), o por medio de operaciones tan complejas como se desee. Para recorrer todos los nodos de una lista se comienza con el primero. Tomando el valor del campo enlace o liga se avanza por cada nodo hasta que dicho enlace sea igual a NULL.

Bsquela de un elemento La operacin de bsqueda de un elemento en lista se realiza de modo secuencial. Se deben recorrer los nodos, tomando el campo enlace o liga como referencia al siguiente nodo a visitar. La bsqueda puede optimizarse cuando la lista esta ordenada.

También podría gustarte