viernes, 28 de septiembre de 2007

OPERACIONES:


CreaNodo.

Descripción: Realiza la solicitud del espacio de almacenamiento para almacenar un nodo.

Datos de ingreso: Apuntador a Nodo.

Datos de salida: Espacio de almacenamiento referenciado por el apuntador a Nodo.

Precondición: Apuntador a Nodo se encuentra inicializado a NULL.

Postcondición: Apuntador a Nodo poseerá una dirección de memoria, si es nula se interpretará como la imposibilidad de obtener espacio de almacenamiento, por lo que el objeto no se creará.

InsertaInicio.

Descripción: Inserta un nodo en la posición referenciada por el apuntador Cabeza.

Datos de ingreso: Apuntador a Nodo.

Datos de salida: Apuntador a Cabeza.

Precondición: True.

Postcondición: Lista poseerá uno o más elementos. Cabeza apuntará a una dirección física.

InsertaAntes.

Descripción: Inserta un nodo en la posición previa a la que posee el carácter de ingreso. Actualiza la estructura Lista.

Datos de ingreso: Apuntador Cabeza, Apuntador a Nodo, Caracter.

Datos de salida: Apuntador a Cabeza, o mensaje de imposibilidad de ingresar el nodo, dada la ausencia en la estructura de aquel nodo que posea como elemento al Carácter buscado.

Precondición: True

Postcondición: Lista podrá poseer un elemento más.

InsertaDespues.

Descripción: Inserta un nodo en la posición posterior a la que posee el carácter de ingreso. Actualiza a estructura Lista.

Datos de ingreso: Apuntador Cabeza, Apuntador a Nodo, Caracter.

Datos de salida: Apuntador a Cabeza, o mensaje de imposibilidad de ingresar el nodo, dada la ausencia en la estructura de aquel nodo que posea como elemento al Carácter buscado.

Precondición: True

Postcondición: Lista podrá poseer un elemento más.

VisualizaLista.

Descripción: Permite verificar los elementos de la Lista, partiendo de la Cabeza

Datos de ingreso: Apuntador a Cabeza.

Datos de salida: Ninguno.

Precondición: El usuario ha seleccionado la cabeza desde la cual hará la visualización.

Postcondición: De ninguna manera la estructura será actualizada.

EliminaNodo.

Descripción: Permite prescindir del nodo que posee el Carácter de ingreso (si existe), actualizando la estructura.

Datos de ingreso: Apuntador Cabeza, Carácter.

Datos de salida: Cabeza con estructura modificada, entero 1: fue eliminado, 0: no eliminado.

Precondición: True

Postcondición: De encontrarse el nodo con el carácter buscado, Lista poseerá un elemento menos, de manera contraria se retornará valor para emitir mensaje de nodo no encontrado.

BuscaNodo.

Descripción: Recorre la estructura hasta alcanzar el nodo que contiene el carácter buscado.

Datos de ingreso: Apuntador Cabeza, Carácter.

Datos de salida: 1 si el nodo ha sido encontrado, 0 de manera contraria.

Precondición: True

Postcondición: De ninguna manera la estructura será actualizada.

OrdenaLista.

Descripción: Actualiza la lista, teniendo en cuenta un orden ascendente según los nodos que se tienen.

Datos de ingreso: Apuntador Cabeza.

Datos de salida: Apuntador a Cabeza y estructura modificada.

Precondición: True

Postcondición: Se contará al término de la operación con todos los nodos que se tenían a su inicio.

CuentaNodos.

Descripción: determina la longitud de la estructura a partir del número de nodos que posee Lista.

Datos de ingreso: Apuntador Cabeza.

Datos de salida: Número entero igual o superior a cero.

Precondición: True

Postcondición: La estructura no será modificada.

Circular


LISTA_CIRCULAR_SIMPLE

OBJETO ABSTRACTO: LISTA

Una lista es la sucesión de espacios de memoria vinculados de tal manera que el último encadenamiento debe apuntar al primero.

Lista es una ED Lineal que puede crecer de manera ilimitada (realmente su límite es la memoria ram) según las pretensiones del cliente en tiempo de ejecución.

INVARIANTE:

Lista será controlada por un solo apuntador: cabeza que referenciará en primera instancia NULL y cuando se posicionen uno o más nodos en la Estructura, siempre cabeza referenciará al primero de ellos a menos que el usuario pretenda actualizarlo.

Toda creación de un nodo implicará poner en nulo su espacio autoreferenciable.

Todo nodo se relacionará hacia delante a lo sumo con un nodo a partir de la dirección de memoria donde se encuentra definido. Para todo nodo debe haber claridad en su sucesor y antecesor.

DOMINIO DE LA ESTRUCTURA:

Lista poseerá tantos nodos como el usuario en tiempo de ejecución desee.

Cada nodo poseerá un carácter y la respectiva referencia.

Listas Circulares

OBJETIVOS

- Diseñar e implementar una EDD simplemente referenciada circular a partir de nodos autoreferenciables

- Diseñar e implementar una EDD doblemente referenciada circular a partir de nodos autoreferenciables

Simplemente enzalada

Cabeza

Doblemente enzalada

Cabeza