Definicion Formal Del TAD

5
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

description

Definicion Formal Del TAD

Transcript of Definicion Formal Del TAD

Page 1: 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}

Page 2: Definicion Formal Del TAD

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.

Page 3: Definicion Formal Del TAD

- 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

Page 4: Definicion Formal Del TAD

- 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.