Bueno emos visto que la implementación de cada una de los cuatro tipos de estructuras de lista se pueden desarrollar utilizando referencias.
El primer nodo, frente, de una lista es el nodo apuntado por una cabeza. la lista encadena nodos juntos desde el frente al final de la (cola) da la lista.El final se identifica como el nodo cuyo campo de referencia tiene valor null. La lista se recorre desde el primer punto al ultimo nodo; en cualquier punto del recorrido la posición actual se referencia por el puntero (pointer) actual. Una lista vacía no contiene nodos.Se representa con el puntero cabeza null.
TAD ( lista ).
Bueno como vemos es cosa fácil y emos visto que una lista se usa para almacenar un dato ya sea del mismo tipo, en esta caso aremos pruebas de como hacer algunas operaciones con las listas.
Una lista como bien sabemos es una estructura de datos dinamica. El numero de nodos puede varias rápidamente en un proceso aumentando o disminuyendo dependiendo si se eliminan o se insertan.
Matemáticamente, una lista es una secuencia de cero o más elementos de un determinado tipo.
(a1, a2, a3, ... , an) donde n >= 0,
si n = 0 la lista es vacía.
Los elementos de la lista tienen la propiedad de que sus elementos están ordenados de forma lineal, según las posiciones que ocupan en la misma. Se dice que ai precede a ai+1 para i = 1 ..., n-1; y que ai sucede a ai-1 para i = 2... n.
Para formalizar el tipo de dato abstracto Lista a partir de la noción matemática, se define un conjunto de operaciones básicas con objetos de tipo Lista. Las operaciones son:
A L ∈ Lista, A x ∈ Lista, A p ∈ puntero
Lista vacia(L) Inicializa la lista L como lista vacía.
Es vacia(L) Determina si la lista L está vacía.
Insertar(L,x,p) Inserta en la lista L un nodo con el campo dato x, delante del
nodo de dirección p.
Localizar(L,x) Devuelve la posición/dirección donde está el campo de información x.
Suprimir(L,x) Elimina de la lista el nodo que contiene el dato x.
Anterior(L,p) Devuelve la posición/dirección del nodo anterior a p.
Primero(L) Devuelve la posición/dirección del primer nodo de la lista L.
Anula(L) Vacía la lista L.
Estas operaciones son las que pueden considerarse básicas para manejar listas. En realidad, la decisión de qué operaciones son las básicas depende de las características de la aplicación que se va a realizar con los datos de la lista. También dependerá del tipo de representación elegido para las listas. Así, para añadir nuevos nodos a una lista, se implementan, además de insertar(), versiones de ésta como:
inserPrimero(L,x) Inserta un nodo con el dato x como primer nodo de la lista L.
inserFinal(L,x) Inserta un nodo con el dato x como último nodo de la lista L.
Una operación típica de toda estructura de datos enlazada es recorrer. Consiste en visitar cada uno de los datos o nodos de que consta. En las listas enlazadas, esta operación se realiza normalmente desde el nodo cabeza al último nodo o cola de la lista.
OPERACIONES EN LISTAS.
La implementación del TAD Lista requiere, en primer lugar, declarar la clase Nodo, en la que se combinarán sus dos partes: el dato (entero, real, doble, carácter o referencias a objetos) y un enlace. Además, la clase Lista con las operaciones y el atributo con la cabeza de la lista.
Las operaciones tendrán las siguientes funciones:
• Inicialización o creación.
• Insertar elementos en la lista.
• Eliminar elementos de la lista.
• Buscar elementos de la lista.
• Recorrer la lista enlazada.
• Comprobar si la lista está vacía.
Bueno ahora ya saben algo la siguiente entrada ahora si empezaremos con algo de practica.
Saludos by x0d3ck.
No hay comentarios:
Publicar un comentario