You are on page 1of 18

Fundamentos de Datos e

Informacin
Al finalizar el curso, el alumno implementa
aplicaciones de entorno visual con acceso a
base de datos, diseando una estructura de
datos y utilizando algoritmos adecuados para
optimizar el tiempo de ejecucin y uso de los
recursos en las aplicaciones.
Logro del Curso
Unidad 2 : Estructuras,
Algoritmos y Ordenamientos
Al finalizar la unidad, el alumno realiza aplicaciones que hagan
uso de listas simples, pilas y colas bajo el enfoque de la
Programacin Orientada a Objetos, usando las clases que tiene
definida .NET. De igual forma calcula el tiempo de ejecucin de
un algoritmo y utiliza en una aplicacin, el mtodo de
ordenamiento ms adecuado, segn los datos que se manejan.
Logro
Son estructuras utilizadas muy a menudo como
herramientas de programacin de tipo LIFO (Last in-First
out).

Permiten el acceso solo a un elemento a la vez: el
ltimo elemento insertado.

La mayora de los procesadores utilizan una
arquitectura basada en pilas.
Pilas
Bsicamente, poseen tres operaciones primarias:

Push (dato)
Inserta el dato en el tope de la pila.

Pop ()
Remueve el dato del tope de la pila.

Peek ()
Permite visualizar el dato del tope de la pila, sin
retirarlo.

Pilas - Operaciones
Otras operaciones usualmente incluidas en el tipo de
dato abstracto pila son:

Empty ()
Verifica si la pila est vaca o no.

Full()
Verifica si la pila est llena o no.
Pilas - Otras Operaciones
Navegador Web
Se almacenan los sitios previamente visitados.
Cuando el usuario quiere regresar (presiona el botn de retroceso),
simplemente se extrae la ltima direccin (pop) de la pila de sitios
visitados.

Editores de texto
Los cambios efectuados se almacenan en una pila.
El usuario puede deshacer los cambios mediante la operacin
Undo, la cual extrae el estado del texto antes del ltimo cambio
realizado.

Evaluacin de expresiones.

Balance de smbolos
Aplicaciones de las pilas
La clase de .NET que implementa esta estructura de
datos es llamada Stack.

Esta clase tiene los siguientes mtodos y propiedades:
Push()
Pop()
Peek()
Count
Pilas con .NET Collections
class Program
{
static void Main(string[] args)
{
Stack<int> pila = new Stack<int>();
pila.Push(20);
pila.Push(30);
pila.Push(40);
pila.Push(50);
pila.Push(60);
while (pila.Count > 0)
{
Console.WriteLine(pila.Peek());
pila.Pop();
}
Console.ReadKey();
}
}
Ejemplo
Son estructuras utilizadas muy a menudo como
herramientas de programacin de tipo FIFO (First in-
First out).

Pueden ser usadas para simular una cola de personas
en el cine.
Colas
Bsicamente, poseen tres operaciones primarias:

Encolar (dato)
Inserta el dato al final de la cola.

Desencolar()
Retira el dato que se encuentra al inicio de la cola.

Peek ()
Permite visualizar el dato que se encuentra al inicio de la
cola.

Colas - Operaciones
Otras operaciones usualmente incluidas en el tipo de
dato abstracto cola son las siguientes:

Empty ()
Verifica si la cola est vaca o no.

Full()
Verifica si la cola est llena o no.
Colas - Otras Operaciones
En general, las colas se utilizan en operaciones en redes de
computadoras:
Trabajos enviados a una impresora
Solicitudes a un servidor

Clientes solicitando ser atendidos por una telefonista.

Simulaciones de cualquier situacin real en la que se presente una
organizacin tipo cola.

Simulacin de lneas de espera.
Aplicaciones de las colas
En .NET la clase que implementa esta estructura de
datos es llamada Queue.

La clase Queue tiene los siguientes mtodos y
propiedades:
Enqueue()
Dequeue()
Peek()
Count
Colas con .NET Collections
class Program
{
static void Main(string[] args)
{
Queue<int> cola = new Queue<int>();
cola.Enqueue(20);
cola.Enqueue(30);
cola.Enqueue(40);
cola.Enqueue(50);
cola.Enqueue(60);
while (cola.Count > 0)
{
Console.WriteLine(cola.Peek());
cola.Dequeue();
}
Console.ReadKey();
}
}
Ejemplo
Realizar un programa que lea un fichero de texto con una expresin
algebraica escrita en notacin postfija (polaca inversa) CON NMEROS Y
OPERADORES SEPARADOS POR ESPACIOS y
genere otro fichero de texto con la expresin en formato infijo, usando
parntesis para evitar problemas de precedencia de operadores.
Ejemplo:
Sea el contenido de entrada.txt
10 3 + 5 *
La aplicacin debe de solicitar la ruta del archivo de entrada
Fichero con la expresin Postfija: entrada.txt
y luego generar el archivo salida.txt con la siguiente informacin
((10+3)*5)
Ejercicios
Existe un estacionamiento que tiene un slo carril que aloja hasta 10 carros. Los autos llegan
por el extremo sur del estacionamiento y salen por el extremo norte del mismo.

Si llega un cliente para recoger un carro que no est en el extremo norte, se sacan todos los
automviles de ese lado, se retira el auto y los otros coches se restablecen en el mismo orden
que estaban. Cada vez que sale un auto, todos los autos del lado sur se mueven hacia
adelante para que en todas las ocasiones todos los espacios vacos estn en la parte sur del
estacionamiento.
Escriba un programa que lea un grupo de lineas de ingreso. Cada lnea contiene una ``A'' para
las llegadas y una ``D'' para las salidas y un nmero de placa. Se supone que los carros llegan
y salen en el orden especificado en la entrada.

El programa debe imprimir (en la terminal estndar) un mensaje cada vez que entra o sale un
auto. Cuando llega un carro, el mensaje debe especificar si hay espacio o no para l en el
estacionamiento. Si no hay espacio, el carro espera hasta que hay espacio o hasta que se lee
una lnea de salida para el auto. Cuando queda disponible espacio, debe imprimirse otro
mensaje. Cuando salga un coche, el mensaje debe incluir la cantidad de veces que se movi
el auto dentro del estacionamiento, incluyendo la salida misma, pero no la llegada. Este
nmero es 0 si el carro sale de la fila de espera.
Ejercicios

You might also like