0% encontró este documento útil (0 votos)
141 vistas50 páginas

Algoritmos y Estructuras de Datos

Este documento resume la segunda parte de la unidad 2 sobre estructuras dinámicas de datos. Explica pilas y colas, incluyendo sus definiciones, operaciones básicas como push/pop y enqueue/dequeue, y aplicaciones como navegadores web, editores de texto, y colas de procesamiento. También cubre la programación de pilas y colas mediante el uso de punteros y nodos enlazados.

Cargado por

Kat Minerva
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
141 vistas50 páginas

Algoritmos y Estructuras de Datos

Este documento resume la segunda parte de la unidad 2 sobre estructuras dinámicas de datos. Explica pilas y colas, incluyendo sus definiciones, operaciones básicas como push/pop y enqueue/dequeue, y aplicaciones como navegadores web, editores de texto, y colas de procesamiento. También cubre la programación de pilas y colas mediante el uso de punteros y nodos enlazados.

Cargado por

Kat Minerva
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 50

Algoritmos y estructuras de

datos
Unidad 2: Estructuras dinámicas de datos
(parte 2)

Prof. Felipe de Jesús Chiu Martínez


Matricula: 019800614
Open class semana4
Índice
Estructura de la materia
2. Estructuras dinámicas de datos
Introducción
Objetivo
2.7 Pilas
Ejemplos de pilas
Utilidad de las pilas
Aplicaciones de las pilas
Programación de una pila
2.8 Colas
Estructura de datos cola
Operaciones con colas
Aplicaciones de las colas
Implementación de las colas
Ejemplos de colas
Conclusiones
Pregunta de investigación
Actividades semana 4
Cierre de la sesión
Estructura de la materia
Semana 1 Semana 3
y semana 2 y Semana 4
Unidad 1 Unidad 2
Estructuras Está- Estructuras Diná-
ticas de Datos micas de Datos Semana 5
Unidad 3
Recursión
Semana 6
y Semana 7
Unidad 4
Árboles
Unidad 2: Estructuras Dinámicas
de Datos
(segunda parte)
Introducción
¿Cómo las estructuras de datos dinámicas optimizan
el uso de la memoria?
Una de las aplicaciones de la memoria dinámica son las estructuras
dinámicas de datos, las cuales permiten crear estructuras que se
adapten a las necesidades de programación. En muchas
circunstancias se requieren estructuras cuyo tamaño pueda ser
modificado durante la ejecución de una aplicación y esto se puede
lograr gracias al uso de punteros o variables que almacenan
direcciones de memoria, con las cuales se manipulan los nodos o
elementos que contienen las estructuras.

En esta unidad conocerás como se conforman las estructuras


dinámicas, así como las operaciones que se pueden realizar con
ellas.
Objetivos
Emplear las estructuras dinámicas de datos,
mediante la aplicación de los diferentes procesos de
implementación, para solucionar problemas de
almacenamiento dinámico de datos en memoria.
Resultados de aprendizaje
• Distinguir la definición y características de las
estructuras, algoritmos y formas de
implementación de la programación dinámica en
pilas y colas.
• Solucionar problemas de manipulación de datos
que requieran la selección e implementación de
estructuras dinámicas de datos.
2.Estructuras dinámicas de datos

¿Qué es una pila?


2.Estructuras dinámicas de datos
2.7 Pilas
Una pila es una versión restringida de una lista
enlazada; una pila recibe nuevos nodos y libera
nodos sólo desde su parte superior. Por esta razón,
a una pila se le conoce como estructura de datos
UEPS (último en entrar, primero en salir).
2.Estructuras dinámicas de datos
2.7 Pilas
Las operaciones principales para
manipular una pila son push
(meter) y pop (sacar). La
operación meter agrega un
nuevo nodo a la parte superior
de la pila. La operación sacar
elimina un nodo de la parte
superior de la pila, y devuelve el
elemento de datos del nodo que
se extrajo.
2.Estructuras dinámicas de datos
2.7 Pilas
Las pilas tienen muchas
aplicaciones interesantes.
Por ejemplo, cuando un
programa llama a un
método, éste debe saber
cómo regresar al programa
que lo llamó, por lo que la
dirección de retorno se mete
en la pila de llamadas a
métodos.
2.Estructuras dinámicas de datos
2.7 Pilas
Si ocurre una serie de llamadas a
métodos, los valores de retorno
sucesivos se meten en la pila, en el
orden “último en entrar, primero en
salir“, de manera que cada método
pueda regresar al objeto que lo llamó.
Las pilas soportan las llamadas
recursivas a métodos, de la misma
forma que soportan las llamadas
convencionales no recursivas a los
métodos.
2.Estructuras dinámicas de datos
Ejemplo de Pilas
• Su nombre se deriva de la
metáfora de una pila de
platos en una cocina. Entra Sale

• La inserción y extracción de
elementos de la pila siguen Tope

el principio LIFO (last-in-first-


out).
• El último elemento en entrar
es el único accesible en cada
momento.
2.Estructuras dinámicas de datos
Ejemplo de Pilas
• Una pila (stack) es una colecciona ordenada
de elementos en la cual los datos se insertan
o se retiran por el mismo extremo llamado
“parte superior” de la pila.
2.Estructuras dinámicas de datos
Ejemplo de Pilas

Existe solamente un lugar en donde cualquier elemento


puede ser agregado a la pila. Después de haber insertado el
nuevo elemento, G ahora es el elemento en la cima.
2.Estructuras dinámicas de datos
Ejemplo de Pilas

#06b706

Basta indicar que sea retirado un elemento. No


podemos decir “retirar C”, porque C no está en la cima
de la pila.
2.Estructuras dinámicas de datos
Ejemplo de Pilas
1 4

1 1 1 1 1

4 4 4 4 4 4

push(4) push(1) push(1) pop() push(4) pop()

La dinámica de la pila, es decir, la manera en cómo entran


y salen los datos a la estructura de datos se denomina fifo
(first input, first output)
2.Estructuras dinámicas de datos
Utilidad de las Pilas
El concepto de pila es muy importante en computación y en
especial en teoría de lenguajes de programación. En
lenguajes procedurales como Pascal o C, la pila es una
estructura indispensable, debido a las llamadas a función. Por
que?
Cuando ocurre una llamada a alguna función, el estado global
del sistema se almacena en un registro y éste en una pila.
Cuando se termina de ejecutar algún procedimiento, se
recupera el registro que está en la cima de la pila.

Otras aplicaciones de las Pilas?


2.Estructuras dinámicas de datos
Aplicaciones de las Pilas
• Navegador Web
– Se almacenan los sitios previamente visitados
– Cuando el usuario quiere regresar (presiona el botón de
retroceso), simplemente se extrae la última dirección
(pop) de la pila de sitios visitados.

• Editores de texto
– Los cambios efectuados se almacenan en una pila
– Usualmente implementada como arreglo
– Usuario puede deshacer los cambios mediante la
operación “undo”, la cual extraer el estado del texto
antes del último cambio realizado.
2.Estructuras dinámicas de datos
Programación de una pila
2.Estructuras dinámicas de datos
Programación de una pila
2.Estructuras dinámicas de datos
Programación de una pila
2.Estructuras dinámicas de datos
Programación de una pila
librerías

Definición clase pila

Insertar nuevos nodos


2.Estructuras dinámicas de datos
Programación de una pila

Extracción de
nodos
2.Estructuras dinámicas de datos
Programación de una pila
2.Estructuras dinámicas de datos
Programación de una pila
2.Estructuras dinámicas de datos

¿Qué es una cola?


2.Estructuras dinámicas de datos
2.8 Colas
La cola es otra estructura de datos de uso común.
Una cola es similar a una fila para pagar en un
supermercado; el cajero atiende primero a la
persona que está al principio de la fila. Otros clientes
entran a la fila sólo por su parte final y esperan a
que se les atienda.
2.Estructuras dinámicas de datos
2.8 Colas
Los nodos de una cola se eliminan desde el principio
(o frente) de la misma y se insertan sólo al final de
ésta. Por esa razón, una cola es una estructura de
datos PEPS (primero en entrar primero en salir).
Las operaciones para insertar y eliminar se conocen
como enqueue (Agregar a la cola) y dequeue
(eliminar de la cola).
2.Estructuras dinámicas de datos
2.8 Colas
Las colas tienen muchas aplicaciones en
los sistemas computacionales. La
mayoría de las computadoras tienen un
solo procesador , por lo que solo
pueden atender una aplicación a la vez.
Cada aplicación que requiere tiempo del
procesador se coloca en una cola. La
aplicación al frente de la cola es la
siguiente que recibe atención. Cada
aplicación avanza en forma gradual al
frente de la cola, a medida que las
aplicaciones al frente reciben atención.
2.Estructuras dinámicas de datos
2.8 Colas
Las colas también se utilizan para dar soporte al
uso de la cola de impresión. Por ejemplo, una sola
impresora puede compartirse entre todos los
usuarios de la red. Muchos usuarios pueden enviar
trabajos a la impresora, incluso cuando ésta ya se
encuentre ocupada.
2.Estructuras dinámicas de datos
2.8 Colas
Estos trabajos de impresión se colocan en una cola
hasta que la impresora esté disponible. Un
programa conocido como spooler administra la cola
para asegurarse que, a medida que se complete
cada trabajo de impresión, se envíe el siguiente
trabajo a la impresora.
2.Estructuras dinámicas de datos
Estructura de datos Cola
En una cola hay dos extremos, uno es llamado la parte
delantera y el otro extremo se llama la parte trasera de la
cola. En una cola, los elementos se retiran por la parte
delantera y se agregan por la parte trasera.
2.Estructuras dinámicas de datos
Estructura de datos Cola
• Su nombre se deriva de la Entra

metáfora de una cola de


cola
personas en una taquilla.
• La inserción y extracción
de elementos de la cola
siguen el principio FIFO
(first-in-first-out).
frente
• El elemento con más
tiempo en la cola es el que
puede ser extraído. Sale
2.Estructuras dinámicas de datos
Operaciones con colas
• Las operaciones básicas de una cola son “enqueue”
(meter) y “dequeue” (sacar)
– enqueue: añade un nuevo elemento al final de la cola
– dequeue: elimina (saca) el primer elemento de la cola

• Otras operaciones usualmente incluidas en el tipo


abstracto COLA son:
– isEmpty (estáVacia): verifica si la cola está vacía
– isFull (estáLlena): verifica si la cola está llena
2.Estructuras dinámicas de datos
Operaciones con colas

Cola vacía

a enqueue(a)

a b enqueue(b)

a b c
enqueue(c)

b c dequeue()
2.Estructuras dinámicas de datos
Aplicaciones de las colas
• En general, operaciones en redes de
computadoras.
– Trabajos enviados a una impresora
– Solicitudes a un servidor.

• Clientes solicitando ser atendidos por una


telefonista.

• Mas aplicaciones de las estructuras tipo cola?


2.Estructuras dinámicas de datos
Implementación de las colas
• De manera similar a las pilas, las colas definen una estructura no
estándar, de manera que se debe crear un nuevo tipo de dato, el
tipo cola, que debe tener los siguientes elementos:
• Un arreglo de n elementos de algún tipo específico, puede
incluso ser un tipo estándar o no.
• Un número que indica el elemento que está en la posición del
frente de la cola.
• Un número que indica el elemento que está en la posición
trasera de la cola.
2.Estructuras dinámicas de datos
Ejemplos de colas
Clase de pila que hereda de Lista

El programa de las figuras 24.16 y 24.17 crea una clase de cola,


heredando de una clase de lista. Queremos que la clase
HerenciaCola (figura 24.16) tenga los métodos Enqueue,
Dequeue, EstaVacia e Imprimir.
En esencia, éstos son los métodos InsertarAlFinal,
EliminarDelFrente, EstaVacia e Imprimir de la clase Lista.
Desde luego que la clase de lista contiene otros métodos (como
InsertarAlFrente y EliminarDelFinal) que es preferible no hacer
accesibles a través de la interfaz public de la clase de cola.
Recuerde que todos los métodos en la interfaz public de la clase
Lista son también métodos public de la clase derivada
HerenciaCola.
2.Estructuras dinámicas de datos
Ejemplos de colas
2.Estructuras dinámicas de datos
Ejemplos de colas
2.Estructuras dinámicas de datos
Ejemplos de colas
2.Estructuras dinámicas de datos
Conclusiones
• Se ha demostrado que las estructuras de datos tipo pila y
cola son versiones restringidas de las listas. Para las pilas,
vimos que las inserciones y eliminaciones se realizan solo
en la parte superior; es por ello que las pilas se conocen
como estructuras de datos UEPS (último en entrar
primero en salir) o LIFO que son sus siglas en inglés (last
in, first out).
• Para las colas, que representan filas de espera, vimos
que las inserciones se realizan en la parte final y las
eliminaciones en la parte inicial; es por ello que las colas
se conocen como estructuras de datos PEPS (primero en
entrar primero en salir) o FIFO que son sus siglas en
inglés (first in, first out).
Pregunta de investigación
1. Considere la siguiente estructura de una pila:
10 ¿Cómo quedaría la estructura después de aplicar las siguientes operaciones:
push(10), push(20),pop()
20
Seleccione una opción:
30 a) 20,10,10,20,30,40,50
b) 10,10,20,30,40,50
40 c) 10,20,10,20,30,40,50
d) 10,20,30,40,50,10
50

2. Considere la misma estructura pero ahora como una cola:


1010 20 30 40 50

¿Cómo quedaría la estructura después de aplicar las siguientes operaciones:


enqueue(10), enqueue(20),dequeue()

Seleccione una opción:


a) 10,20,10,20,30,40,50
b) 10,10,20,30,40,50
c) 10,20,30,40,50,10,20
d) 20,30,40,50,10,20
Actividades semana 4
Recursos
Actividades semana 2
Foro 2

Segunda etapa (del 15 al 20 de marzo):

Segunda etapa (del 01 al 07 de noviembre):


Actividades semana 4
Exámenes
Modalidad de exámenes | Semana 4 miércoles, 29 de marzo de 2023, 23:55

Exámenes autocalificables
Actividades semana 4
Puntos extras
Actividades semana 4
Evidencias de aprendizaje
Les informo que ya se encuentra disponible su guía académica correspondiente
a su primer examen parcial, en el foro de consulta y comentarios del espacio del
profesor.

No olviden que obtienen una actividad para puntos extras si la resuelven


completa y la suben al espacio para puntos extras.

Espero sus guías resueltas para asignarles los puntos obtenidos.


Muchas Gracias

También podría gustarte