Sie sind auf Seite 1von 41

PILAS, COLAS Y LISTAS ENLAZADAS

•Rivera Roldan Alondra. 18820410


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

Das könnte Ihnen auch gefallen