Subido por Christian López

Pilas y Colas de estructuras de datos

Anuncio
PILAS Y COLAS DE
ESTRUCTURA DE DATOS
Estructura de Datos Aplicada
Mtro. Sergio Lugo Ortiz
Universidad Tecnológica de Aguascalientes
Christian Armando López Torres
200384
TIADSM
Christian Armando López Torres
200384 - TIADSM
Objetivo de aprendizaje.
Comprender el concepto de en estructura de datos sobre pilas, colas y como se pueden
implementar para solucionar alguna problemática
Resultado de aprendizaje.
Aplicar pilas y colas para soluciones efectivas.
Pilas
Una pila es una estructura de datos que permite almacenar y recuperar datos en orden
LIFO (ultimo en entrar, primero en salir). Una forma de representar una pila es mediante
un arreglo o vector, donde se reserva un espacio de memoria para almacenar los
elementos de la pila y se usa una variable para indicar el índice del último elemento
insertado.
Otra forma es mediante una lista enlazada, donde cada elemento tiene un puntero al
siguiente y se usa un puntero para indicar el último elemento insertado.
Operaciones sobre una pila
Las operaciones básicas que podemos realizar sobre una pila son dos: almacenamiento
(push) y recuperación (pop). Para manejar una estructura de datos tipo pila, un
programador debe definir un conjunto de operaciones que permitan al usuario acceder y
manipular los elementos en ella almacenados.
Generalmente, cada una de estas operaciones suele recibir un nombre fijo e identificativo
de la operación que realiza, siendo la terminología utilizada más común:






Meter o Apilar: se denomina así a la operación que añade un elemento a una
pila.
Sacar o Desapilar: operación que saca un elemento de la pila.
Inicializar Pila: una vez creada la pila y antes de usarla, esta debe quedar
inicialmente vacía.
Pila Vacía: operación que devuelve un valor de tipo lógico para comprobar si la
pila se encuentra vacía antes de sacar un elemento.
Pila Llena: la usaremos en aquellos casos en que sea necesario saber si la pila
se encuentra llena antes de añadir un nuevo elemento.
Cima: útil para obtener el último elemento que fue añadido a la pila, este es, el
primero en salir de ella.
1
Christian Armando López Torres
200384 - TIADSM
Ejemplo
#include <iostream>
const int MAX_SIZE = 10;
class Pila {
private:
int datos[MAX_SIZE];
int tope;
public:
Pila() {
tope = -1;
}
bool esta_vacia() {
return tope == -1;
}
bool esta_llena() {
return tope == MAX_SIZE - 1;
}
void pila_pone(int valor) {
if (esta_llena()) {
std::cout << "La pila esta llena" << std::endl;
return;
}
datos[++tope] = valor;
}
int pila_quita() {
if (esta_vacia()) {
std::cout << "La pila esta vacia" << std::endl;
return -1;
}
return datos[tope--];
}
};
int main() {
Pila pila_llena;
for (int i = 0; i < MAX_SIZE; i++) {
pila_llena.pila_pone(i);
}
std::cout << "La pila esta llena: " << pila_llena.esta_llena() <<
std::endl;
Pila pila_vacia;
std::cout << "La pila esta vacia: " << pila_vacia.esta_vacia() <<
std::endl;
Pila pila;
for (int i = 0; i < MAX_SIZE + 1; i++) {
pila.pila_pone(i);
}
for (int i = 0; i < MAX_SIZE + 1; i++) {
std::cout << pila.pila_quita() << std::endl;
}
return 0;
}
2
Christian Armando López Torres
200384 - TIADSM
Colas
Una cola es una estructura de datos que representa una cola en el mundo real. Es un tipo
de dato abstracto que se caracteriza por ser una secuencia de elementos en la que la
operación de inserción se realiza por un extremo y la operación de extracción por el otro,
se le llama también estructura FIFO (First In First Out), porque el primer elemento enn
entrar es también el primero en salir.
Representación
Una representación gráfica de una cola es una serie de nodos o cajas que contienen los
elementos de la cola, conectados por flechas que indican el sentido de la inserción y la
extracción. El extremo donde se insertan los elementos se llama final y el extremo donde
se extraen se llama frente.
3
Descargar