Jump to content
Hostul a fost schimbat. Daca vedeti serverul offline readaugati rpg.b-zone.ro sau 141.95.124.78:7777 in clientul de sa-mp ×

[C++] Coada - queue


Clanin3
 Share

Recommended Posts

Coada (sau queue) este o structură de date abstractă, în care operația de adăugare se realizează la un capăt, iar cea de eliminare la capătul celălalt.

! Coada ne permite, în timpul operațiilor, să lucrăm doar cu elementul aflat la începutul cozii.

 

Utilizari

Coada se foloseste atunci când dorim să prelucrăm date într-o ordine precisă, în funcție de identificarea acestora.

 

Modalități de implementare a cozii:

1. Implementare statică, folosind tablouri

Declaratie:

const int dimensiune = 1000; //dimensiune coada
int stanga, dreapta; //stanga > dreapta => coada vida; stanga <= dreapta => coada nevida
TIP_DATE coada[dimensiune];//declararea cozii

Avem nevoie de stanga si de dreapta pentru a putea mări, respectiv lucra cu primul element din coadă. Aceste variabile pot avea, desigur, alte denumiri.

 

Inițializare coadă:

stanga = 1;
dreapta = 0;

În acest moment avem o coadă vidă.

 

Adăugarea unei valori în coadă:

dreapta++;
coada[dreapta] = val;

După ce am mărit dimensiunea cozii, putem spune că avem un numar egal cu diferenta dintre dreapta și stânga de elemente. Valoarea trebuie să fie reprezentat de tipul de date care pot fi introduse în coadă (in funcție de declarație).

 

Ștergerea primului element din coadă:

stanga++;

Primul element nu va mai putea fi accesat după ce variabila stanga va fi mărită.

 

Prima valoare din coada:

coada[stanga]

 

Exemplu de folosire a cozii prin afișarea elementelor introduse în coadă.

#include <iostream>

using namespace std;

int main()
{
	const int dimensiune = 300;
	int stanga, dreapta, coada[300];
	stanga = 1;
	dreapta = 0;
	int n = 4; //presupunem ca vrem sa introducem 4 valori;
	while (dreapta < n)
	{
		dreapta++;
		cin >> coada[dreapta];
	}//au fost citite cele n elemente ale cozii.
	while (stanga <= dreapta)
	{
		cout << coada[stanga]<<" ";
		stanga++;
	}//se va afisa, in bucla, primul element al cozii apoi va fi considerat eliminat.
	return 0;
}

După executarea codului, de exemplu 7 3 5 0, in consola vor aparea pe rând elementele cozii - 7 3 5 0 conform exemplului.

image.png

 

 

2. Implementarea cozii folosind librăria Queue

Includere librărie:

#include <queue>

 

Declaratie si verificare daca o coada este vidă:

queue<TIP_DATE> coada;//unde "coada" este numele cozii.

coada.empty(); // returneaza valorile 1 daca e vida sau 0 daca e nevida

 

Adaugarea unei valori in coada:

coada.push(VAL); //unde val este valoarea pe care doriti s-o adaugati.

 

Eliminarea unui element de pe prima pozitie:

coada.pop(); //elimina prima valoare din coada

 

Prima valoare din coadă:

coada.front() //returneaza prima valoare din coada.

 

Exemplu de folosire a cozii prin afișarea elementelor introduse în coadă.

#include <iostream>
#include <queue>

using namespace std;

int main()
{
	queue<int> coada;
	int n = 5;//consideram ca dorim sa prelucram 5 elemente din coada.
	for (int i = 0; i < n; i++)
	{
		int q;
		cin >> q;
		coada.push(q);
	}//adaugam valori in coada

	while (!coada.empty()) //cat timp coada.empty() == 0
	{
		cout << coada.front() << " ";
		coada.pop();
	}//afisarea si stergerea valorilor din coada.
	return 0;
}

 

image.png

 

După executarea codului, de exemplu 69, 24, 55, 33, 10, in consola vor aparea pe rând elementele cozii - 69, 24, 55, 33, 10 conform exemplului.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.