•Rodríguez López Pedro Isaías .18820302 •Aran Ayala Adan Uriel. 18820295
Dra. Paula Hernández Hernández
23-Octubre-2019 PILAS
Representa una estructura lineal de datos en
la que se puede agregar o quitar elementos únicamente por uno de los dos extremos. Los elementos de una pila se eliminan en orden inverso al que se insertaron; es decir, el último elemento que se mete en la pila es el primero que se saca. LIFO (Last-Input, First- Output: Es importante definir el tamaño máximo de la pila, así como una variable auxiliar a la que se denomina TOPE. Esa variable se utiliza para indicar el último elemento que se insertó en la pila. Una vez dado un máximo de capacidad a la pila no es posible insertar un número de elementos mayor al máximo establecido. Si la pila estuviera llena y se intentara insertar un nuevo elemento, se producirá un error conocido como desbordamiento -overflow-o, Otro error que se puede presentar al trabajar con pilas es tratar de eliminar un elemento de una pila vacía. Este tipo de error se conoce cómo subdesbordamiento –Utrderflow. Operaciones con pilas:
Insertar un elemento -Push- en la pila
Eliminar un elemento -Pop- de la pila Aplicaciones de pilas
Las pilas son una estructura de datos muy
usada en la solución de diversos tipos de problemas, en el área de la computación. Ahora se analizarán algunos de los casos más representativos de aplicación de las mismas: Llamadas a subprogramas Recursividad Tratamiento de expresiones aritméticas Ordenación La clase pila
Los atributos son la colección de elementos y
el TOPE. Los métodos, por otra parte, son - Pila_vacía, Pila_llena, Pone y Quita-. COLAS
Constituye una estructura lineal de datos en
la que los nuevos elementos se introducen por un extremo y los ya existentes se eliminan por el otro. Es importante señalar que los componentes de la cola se eliminan en el mismo orden en el cual se insertaron. El primer elemento que se introduce en la estructura será el que se eliminará en primer orden. Debido a esta característica, las colas también reciben el nombre de estructuras FIFO (First-In, First-Out: el primero en entrar es el primero en salir). Representación de colas Colas circulares Constituye una estructura de datos lineales en la cual el siguiente elemento del último en realidad es el primero. De esta forma se utiliza de manera más eficiente la memoria de la computadora. Doble cola O BICOLA es una generalización de una estructura de datos tipo cola. Es una doble cola, los elementos se pueden insertar o eliminar por cualquiera de los dos extremos. Es decir se pueden insertar y eliminar valores tanto por el FRENTE como por el FINAL de la cola. Aplicaciones de colas Cuando se envía a imprimir algún documento o programa en las colas de impresión. Cuando hay una sola impresora a atender a varios usuarios, suele suceder que algunos de ellos soliciten los servicios de impresión al mismo tiempo o mientras el dispositivo está ocupado. En estos casos se forma una cola con los trabajos que esperan para ser impresos; estos se procesaran en el orden en el cual fueron introducidos en la cola. Varios usuarios comparten ciertos recursos, como CPU, memoria de la computadora. Los recursos se asignan a los procesos que están en la cola en espera, suponiendo que todos tienen una misma prioridad, en el orden en el cual fuerzas introducidos en la cola. Clase cola Los atributos son la colección de elementos y los punteros FRENTE y FINAL. Los métodos, por otra parte son todas las operaciones de cola_vacía, cola_llena, Inserta_cola y Elimina_cola Se tiene acceso a los miembros de un objeto de la clase Cola por medio de la notación de puntos. Cuando se asume que la variable COOBJ es un objeto de la clase cola, previamente creado, se puede hacer: LISTAS ENLAZADAS
Es una colección o secuencia de elementos
dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”. La idea básica consiste en construir una lista cuyos elementos, llamados nodos, se componen de dos partes (campos): la primera parte contiene la información y es, por consiguiente, un valor de un tipo genérico (denominado Dato, TipoElemento, Info, etc.), y la segunda parte es una referencia (denominado enlace o sgte) que apunta (enlaza) al siguiente elemento de la lista. Clasificación de listas enlazadas Listas simplemente enlazadas. Cada nodo (elemento) contiene un único enlace que lo conecta al nodo siguiente o nodo sucesor. La lista es eficiente en recorridos directos (“adelante”). Listas doblemente enlazadas. Cada nodo contiene dos enlaces, uno a su nodo predecesor y otro a su nodo sucesor. La lista es eficiente tanto en recorrido directo (“adelante”) como en recorrido inverso (“atrás”). Lista circular simplemente enlazada. Una lista enlazada simplemente en la que el último elemento (cola) se enlaza al primer elemento (cabeza) de tal modo que la lista puede ser recorrida de modo circular (“en anillo”). Lista circular doblemente enlazada. Una lista doblemente enlazada en la que el último elemento se enlaza al primer elemento y viceversa. Esta lista se puede recorrer de modo circular (“en anillo”) tanto en dirección directa (“adelante”) como inversa (“atrás”). TIPO ABSTRACTO DE DATOS (TAD) LISTA Las inserciones se pueden realizar por cualquier punto de la lista: por la cabeza (inicio), por el final, a partir o antes de un nodo determinado de la lista. Las eliminaciones también se pueden realizar en cualquier punto; además, se eliminan nodos dependiendo del campo de información o dato que se desea suprimir de la lista. OPERACIONES EN LISTAS ENLAZADAS 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. Acceso a la lista: cabecera y cola Cuando se construye y se utiliza una lista enlazada en una aplicación, el acceso a la lista se hace mediante una o más referencias a los nodos. Normalmente, se accede a partir del primer nodo de la lista, llamado cabeza o cabecera de la lista. El último nodo es la cola de la lista, y una referencia al último nodo es la referencia cola. La palabra null representa la referencia nulo, que es una constante especial de Java. La referencia null se puede asignar a una variable referencia con una sentencia de asignación ordinaria. Por ejemplo: Nodo cabeza; cabeza = null; Una lista enlazada es una estructura de datos dinámica en la cual sus componentes están ordenados lógicamente por sus campos de enlace, en vez de ordenados físicamente como en un array. El final de la lista se señala mediante una constante o referencia especial llamada null. Una lista simplemente enlazada contiene sólo un enlace a un sucesor único, a menos que sea el último, en cuyo caso no se enlaza con ningún otro nodo. Una lista doblemente enlazada es aquella en la que cada nodo tiene una referencia a su sucesor y otra a su predecesor. Se pueden recorrer en ambos sentidos. Las operaciones básicas son inserción, borrado y recorrer la lista, similares a las de las listas simples. Una lista enlazada circularmente por propia naturaleza no tiene primero ni último nodo. Las listas circulares pueden ser de enlace simple o doble. Una lista enlazada genérica tiene como tipo de dato Object. Al ser Object la súper clase base de cualquier clase no derivada, con la clase ListaGenerica se pueden crear listas de cualquier tipo de dato referencia. Bibliografía
AGUILAR, L. J. (2008). Estructura de datos en
Java. Aravaca(Madrid). CAIRO, D. O. (s.f.). ESTRUCTURAS DE DATOS . MCGRAW-HILL / INTERAMERICANA DE MEXICO. Tercera edicion .