Witam. Mam następujący problem, ostatnio miałem za zadanie stworzyć program pokazujący działanie zwykłej kolejki. Ta sztuka mi się udała, niestety nie użyłem do tego bufora cyklicznego tylko zadanie rozwiązałem przy pomocy struktury. Teraz muszę napisać program pokazujący działanie kolejki obustronnej jako bufor cykliczny? Jak poradzić sobie z tym problemem?
Kod programu o zwykłej kolejce
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
struct kolejka {
private:
int kolejeczka[10];
int aktualnie=0;
int pierwszy=0;
public:
bool dodaj(int element){
kolejeczka[aktualnie] = element;
aktualnie++;
};
int zdejmij(){
pierwszy++;
return kolejeczka[pierwszy-1];
};
bool czy_cos_jest(){
if(!aktualnie)
return false;
if(aktualnie == pierwszy)
return false;
return true;
};
};
int main()
{
kolejka kolejeczka;
srand(time(NULL));
int liczba;
for(int i=0;i<30;i++){
if(rand()%2)
{
int value=rand()%100;
cout<<"Zapisano liczbe w kolejce: "<<value<<endl;
kolejeczka.dodaj(value);
}
else{
if(kolejeczka.czy_cos_jest()){
cout<<"Zdjeto liczbe z kolejki "<<kolejeczka.zdejmij()<<endl;}
else{cout << "Kolejka jest pusta"<<endl;}
}
}
}