Definicion Formal Del TAD
-
Upload
angel-eduardo -
Category
Documents
-
view
221 -
download
1
description
Transcript of Definicion Formal Del TAD
Especificación del Tipo de Dato Abstracto Racional
VALORES
Concepto matemático de números racionales, es decir, un par de números enteros tal que el primero es el numerador y el segundo el denominador.
OPERACIONES (Sintaxis y Semántica)
• Generadoras
◦ Crear Racional (n,d:entero)→ Racional
{Objetivo: Crear un número racional
Entrada:
n: numerador del nuevo racional
d: denominador del nuevo racional
Salida: El número racional creado}
◦ Suma (r1,r2:Racional) → Racional
{Objetivo: Calcula la suma de dos números racionales
Entrada: r1, r2: números racionales a sumar
Salida:
Un nuevo racional que contiene la suma de los números a la entrada}
• Observadoras
◦ Numerador (Racional)→ Entero
{Objetivo: Obtener el numerador de un número racional
Entrada:
Numero racional del que obtener el numerador
Salida: numerador del número a la entrada}
◦ Denominador (Racional)→ Entero
{Objetivo: Obtener el denominador de un número racional
Entrada:
Numero racional del que obtener el denominador
Salida: denominador del número a la entrada}
TIPOS DE DATOS ABSTRACTOS
• Una abstracción es la simplificación de un objeto o de un proceso de la realidad en la que sólo se consideran los aspectos más relevantes.
• La abstracción se utiliza por los programadores para dar sencillez de expresión al algoritmo.
• La abstracción tiene dos puntos de vista en programación:
1. Funcional
2. De datos
PILAS
Una pila es un método de estructuración de datos usando la forma LIFO(ultimo en entras, primero en salir), que permite almacenar y recuperar datos.
Operaciones de las Pilas
Las operaciones que se pueden realizar con una pila son:
- PUSH(pila,elemento): introduce un elemento en la pila. También se le conoce como poner o meter
- POP(pila): Wlimina un elemento de la pila. También se le conoce como sacar o quitar- VACIA(pila): Funcion booleana que indica si a pila esta vacia o no
COLAS
Una cola es una estructura de datos, caracterizasa por ser secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro.
Tambien se le llama estructura FIFO(del ingles First in First Out), debido a que el primer elemento en entrar será también el primero en salir.
- Cola Simple: estructura lineal donde los elementos salen en el mismo orden en que llegan
- Cola circular: representación lógica de una cola simple en un arreglo- Cola de prioridades: Estructura en la cual los elementos se insertan en cualquier
posición de la cola y se remueven solamente por el frente.- Cola Doble(Bicola): Estructura lineal en la que los elementos se pueden añadir o quitar
por cualquier extremo de la cola(Cola bidireccional).
Operaciones básicas en colas simples
- Insertar: Almacena al final de la cola el elemento que se recibe como parámetro.- Eliminar: Saca de la cola el elemento que se encuentra al frente- Vacia: regresa un valor booleano indicado si la cola tiene o no elementos(true-si la cola
esta vacia,false- si la cola tiene al menos un elemento).- Llena: regresa un valor booleano indicando si la cola tiene espacio disponible para
isnertar nuevos elementos(true-si esta llena y false si existen espacios disponibles).- Crear: se crea la cola vacia.- Encolar(añadir,entrar,insertar): se añade un elemento a la cola. Se añade al final de
esta.- Desencolar(sacar,salir,eliminar): se elimina el elemento frontal de la cola, es decir, el
primer elemento que entro.- Frente(consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer
elemento que entro.
LISTAS
Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o link a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante( suponiendo que dicho punto este previamente identificado o localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: Lista Enlazada Simple, Listas Doblemente Enlazadas,Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares
Operaciones básicas de una lista
- Recorrer los elementos hacia adelante- Recorrer los elementos hacia atrás- Insertar un nuevo elemento al principio- Insertar un nuevo elemento al final- Insertar un nuevo elementos antes de otro- Insertar un nuevo elemento después de otro- Remover un elemento del principio- Remover un elemento que esta antes que otro- Remover un elemento que esta después de otro- Remover un elemento del principio
- Remover un elemento del final
Complejidad Computacional:
- Buscar k-esimo : tiempo constante- Visualizar y buscar: tiempo lineal- Insertar y eliminar: son costosas
Insertar o eliminar un elemento exige, en promedio, desplazar la mitad de los valores, O(n).La construcción de una lista o la eliminación de todos sus elementos podría exigir un tiempo cuadrático.