Estructura de Datos-Colas
Estructura de Datos-Colas
Estructura de Datos-Colas
Barcelona-Edo Anzoátegui.
Estructura de datos -
Colas
C.I: 26.146.950.
24/1//2024.
Concepto de Colas.
El concepto de colas en base de datos se refiere a una forma de gestionar las transacciones o las
consultas que se realizan sobre una base de datos. Una cola es una estructura de datos que almacena
elementos en una lista y permite acceder a los datos por uno de los dos extremos de la lista. Un elemento
se inserta en la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de
la lista.
Las colas en base de datos se usan para ordenar las operaciones que se deben ejecutar sobre la base
de datos, de acuerdo con algún criterio de prioridad o de orden de llegada. Esto permite optimizar el
rendimiento de la base de datos, evitar conflictos o bloqueos, y garantizar la consistencia y la integridad
de los datos.
Las colas son una estructura de datos que permite almacenar y acceder a los elementos siguiendo el
principio FIFO (First In, First Out), es decir, el primero que entra es el primero que sale. Algunas
características de las colas son:
Colas de mensajes: son colas que almacenan mensajes que contienen información sobre las
operaciones que se deben realizar sobre la base de datos. Los mensajes se envían desde una
aplicación o un servicio a la cola, y se consumen por otro proceso que se encarga de ejecutar las
operaciones sobre la base de datos. Esto permite desacoplar la producción y el consumo de los
mensajes, y facilitar la escalabilidad y la tolerancia a fallos.
Colas de trabajos: son colas que almacenan trabajos que consisten en tareas o procesos que se
deben ejecutar sobre la base de datos. Los trabajos se encolan según algún criterio de prioridad o
de tiempo de ejecución, y se asignan a los recursos disponibles para su procesamiento. Esto
permite optimizar el uso de los recursos, balancear la carga de trabajo, y mejorar la eficiencia y
la productividad.
Colas de replicación: son colas que almacenan los cambios que se realizan sobre una base de
datos maestra, y que se deben replicar en una o más bases de datos esclavas. Los cambios se
encolan según el orden en que se producen, y se envían a las bases de datos esclavas para
mantener la sincronización y la coherencia de los datos.
Ejemplos del procedimiento en Lenguaje C++.
Un procedimiento de las colas en Lenguaje C++ es una función que realiza operaciones sobre una
estructura de datos de tipo cola, que almacena elementos siguiendo el principio FIFO (First In, First
Out). Algunas operaciones típicas sobre las colas son:
Para implementar una cola en C++, se puede usar un arreglo estático o una lista enlazada dinámica.
En ambos casos, se debe definir una clase cola que contenga los atributos y los métodos necesarios para
manipular la estructura de datos.
// Este procedimiento encola un elemento en una cola implementada con un arreglo estático
// Este procedimiento desencola un elemento de una cola implementada con una lista enlazada dinámica
int desencolar() {
int elemento; // Variable para almacenar el elemento a desencolar
if (frente != NULL) { // Verifica si la cola no está vacía
elemento = frente->dato; // Obtiene el dato del nodo que está al frente de la cola
Nodo* aux = frente; // Crea un nodo auxiliar para apuntar al frente de la cola
frente = frente->siguiente; // Avanza el frente de la cola al siguiente nodo
delete aux; // Libera la memoria del nodo auxiliar
return elemento; // Devuelve el elemento desencolado
}
else {
cout << "La cola está vacía" << endl; // Muestra un mensaje de error
return -1; // Devuelve un valor arbitrario para indicar que no hay elemento
}
}
Realizar dos ejercicios en Lenguaje C++, aplicando los conceptos fundamentales
sobre Colas en Estructura de Datos.
Ejercicio: Escribir un programa que inserte 10 números enteros en una cola y luego los muestre en
orden inverso, usando una pila auxiliar.
#include <iostream>
#include <queue>
#include <stack>
using namespace std;
int main() {
queue<int> cola; // creamos una cola vacía
stack<int> pila; // creamos una pila vacía
int n; // variable para leer los números
return 0;
}