Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Estructura de Datos-Colas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

República Bolivariana de Venezuela.

Ministerio del Poder Popular para la Educación.

I.U.P. Santiago Mariño.

Barcelona-Edo Anzoátegui.

Estructura de datos -
Colas

Profesor: Ángel Vidal Figueroa Jiménez Bachiller: Manuel Hernández.

C.I: 26.146.950.

Carrera: Ing. En sistemas.

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.

Características de las Colas.

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:

 Se pueden implementar de forma estática o dinámica, usando vectores o listas enlazadas.


 Se pueden insertar elementos por un extremo de la cola, llamado final o cola, y se pueden extraer
elementos por el otro extremo, llamado frente o cabeza.
 Se pueden usar para modelar sistemas que involucran la llegada y la atención de clientes, como
el tráfico, las llamadas telefónicas o las impresiones.
 Se pueden clasificar en diferentes tipos según el número de extremos, el orden de entrada o la
forma de la cola.

Algunos ejemplos de uso de colas en base de datos 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:

 Encolar: insertar un elemento al final de la cola.


 Desencolar: extraer el elemento que está al frente de la cola.
 Vaciar: eliminar todos los elementos de la cola.
 Buscar: verificar si un elemento está o no en la cola.
 Tamaño: obtener el número de elementos que hay en la cola.

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

void encolar(int elemento) {


if (final < MAX - 1) { // Verifica si hay espacio en el arreglo
final++; // Incrementa el índice del final de la cola
cola[final] = elemento; // Asigna el elemento al final de la cola
}
else {
cout << "La cola está llena" << endl; // Muestra un mensaje de error
}
}

// 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

cout << "Ingrese 10 números enteros:\n";


for (int i = 0; i < 10; i++) {
cin >> n; // leemos un número
cola.push(n); // lo insertamos en la cola
}

cout << "Los números en orden inverso son:\n";


while (!cola.empty()) { // mientras la cola no esté vacía
n = cola.front(); // obtenemos el frente de la cola
cola.pop(); // lo eliminamos de la cola
pila.push(n); // lo insertamos en la pila
}

while (!pila.empty()) { // mientras la pila no esté vacía


n = pila.top(); // obtenemos el tope de la pila
pila.pop(); // lo eliminamos de la pila
cout << n << " "; // lo mostramos en pantalla
}
cout << endl;

return 0;
}

También podría gustarte