Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de datos
Unidad 2 Estructuras dinámicas de
datos (parte 2) Pilas y Colas
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.
• Su nombre se deriva de la
metáfora de una pila de Entra Sale
• El último elemento en
entrar es el único accesible
en cada momento.
2.Estructuras dinámicas de datos
2.8 Ejemplo de Pilas
1 4
1 1 1 1 1
4 4 4 4 4 4
• 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
2.8 Ejemplo de Pilas
librerías
Extracción de nodos
2.Estructuras dinámicas de datos
2.8 Ejemplo de Pilas
2.Estructuras dinámicas de datos
2.8 Ejemplo de Pilas
¿Qué es una cola?
2.Estructuras dinámicas de datos
2.9 Colas
• La inserción y extracción
de elementos de la cola
siguen el principio FIFO
(first-in-first-out).
frente
Cola vacía
enqueue(a)
a
a b enqueue(b)
a b c enqueue(c)
b c dequeue()
2.Estructuras dinámicas de datos
2.10 Ejemplos de Colas
public Cola()
{
raiz=null;
fondo=null; Inicialización de valores
}
2.Estructuras dinámicas de datos
2.10 Ejemplos de Colas
public bool Vacia ()
{
if (raiz == null) ¿cola vacía?
return true;
else
return false;
}
public void Insertar (int info)
{
Nodo nuevo;
nuevo = new Nodo ();
nuevo.info = info;
nuevo.sig = null;
if (Vacia ())
{ Inserción de nodos nuevos
raiz = nuevo;
fondo = nuevo;
}
else
{
fondo.sig = nuevo;
fondo = nuevo;
2.Estructuras dinámicas de datos
2.10 Ejemplos de Colas
public int Extraer ()
{
if (!Vacia ())
{
int informacion = raiz.info;
if (raiz == fondo) Extracción de nodos
{
raiz = null;
fondo = null;
}
else
{
raiz = raiz.sig;
}
return informacion;
}
else
return int.MaxValue;
}
2.Estructuras dinámicas de datos
2.10 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).
Exámenes autocalificables
2.Estructuras dinámicas de datos
Actividades semana 4
2.Estructuras dinámicas de datos
Actividades semana 4
Evidencias de aprendizaje
MUCHAS GRACIAS
POR TU ATENCION