, Universidad Distrital Francisco Jose de Caldas Sistemas
21 Marzo del 2017
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Tipos Abstractos de Datos
Podemos pensar un tipo abstracto de datos (TAD) como un
modelo matematico con una colecci on de operaciones definidas en el modelo. un (TAD) es un ente cerrado y autosuficiente, que no requiere de un contexto especfico para que pueda ser utilizado en un programa. Esto garantiza portabilidad y reutilizacion Las partes que forman un TAD son : Atributos (tipos de datos, identificadores, etc.) Funciones (rutinas) que definen las operaciones validas para manipular los datos (atributos). A la forma de operar y encerrar los atributos y funciones dentro un TAD se le denomina encapsulamiento.
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Tipos Abstractos de Datos Para implementar un TAD se siguen dos pasos: Dise nar las estructuras de datos que van a representar cada objeto abstracto Desarrollar una funci on, por cada operaci on del TAD, que simule el comportamiento del objeto abstracto, sobre las estructuras de datos seleccionadas. Las operaciones de un TAD se calsifican en 3 grupos, seg un su funcion sobre el objeto abstracto: Constructora: es la operaci on encargada de crear elementos del TAD. Modificadora: es la operaci on que puede alterar el estado de un elemento de un TAD. Analizadora: es una operacion que no altera el estado del objeto, sino que como misi on su estado y retornar alg un tipo de informacion. Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital TiposFrancisco de datosJose Abstractos de Caldas Sistemas Pila Una pila (stack o pushdown en ingles) es una lista de elementos de la cual solo se puede extraer el u ltimo elemento insertado. La posicion en donde se encuentra dicho elemento se denomina tope de la pila. Tambi n se conoce a las pilas como listas LIFO (LAST IN - FIRST OUT: el u ltimo que entra es el primero que sale).
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Pila
La interfaz de este TDA provee las siguientes operaciones:
apilar(x): inserta el elemento x en el tope de la pila (push en ingles). desapilar(): retorna el elemento que se encuentre en el tope de la pila y lo elimina de esta (pop en ingles). tope(): retorna el elemento que se encuentre en el tope de la pila, pero sin eliminarlo de esta (top en ingles). estaVacia(): retorna verdadero si la pila no contiene elementos, falso en caso contrario (isEmpty en ingles).
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Cola
Una cola (queue en ingles) es una lista de elementos en donde
siempre se insertan nuevos elementos al final de la lista y se extraen elementos desde el inicio de la lista. Tambien se conoce a las colas como listas FIFO (FIRST IN - FIRST OUT: el primero que entra es el primero que sale).
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Cola
Las operaciones basicas en una cola son:
encolar(x): inserta el elemento x al final de la cola (enqueue en ingles). sacar(): retorna el elemento que se ubica al inicio de la cola (dequeue en ingles). estaVacia(): retorna verdadero si la cola esta vaca, falso en caso contrario. Al igual que con el TDA pila, una cola se puede implementar tanto con arreglos como con listas enlazadas. A continuacion se vera la implementaci on usando un arreglo.
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Cola
Las variables de instancia necesarias en la implementacion son
primero: indica el ndice de la posici on del primer elemento de la cola, es decir, la posici on el elemento a retornar cuando se invoque sacar ultimo: indica el ndice de la posici on de u ltimo elemento de la cola. Si se invoca encolar, el elemento debe ser insertado en el casillero siguiente al que indica la variable. numElem: indica cuantos elementos posee la cola. Definiendo MAXE LEMcomoeltamanom aximodelarreglo, yporlotantodelacola, ent
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas Lista
Una lista se define como una serie de N elementos E1 , E2 , ..., EN ,
ordenados de manera consecutiva, es decir, el elemento Ek (que se denomina elemento k-esimo) es previo al elemento Ek+1 . Si la lista contiene 0 elementos se denomina como lista vaca. Las operaciones que se pueden realizar en la lista son: insertar un elemento en la posicion k, borrar el k-esimo elemento, buscar un elemento dentro de la lista y preguntar si la lista esta vaca. Una manera simple de implementar una lista es utilizando un arreglo. Sin embargo, las operaciones de inserci on y borrado de elementos en arreglos son ineficientes, puesto que para insertar un elemento en la parte media del arreglo es necesario mover todos los elementos que se encuentren delante de el, para hacer espacio, y al borrar un elemento es necesario mover todos los elementos para ocupar el espacio desocupado. Una implementaci on mas eficiente del TDA se logra utilizando listas enlazadas.
Juan Manuel Sanchez Navarro 20131167076 , Universidad Distrital
TiposFrancisco de datosJose Abstractos de Caldas Sistemas