kolejka obustronna bufor cykliczny

0

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;}
	}
}
}
0

No ale czego tutaj dokładnie nie rozumiesz? Zobacz sobie jak wygląda bufor cykliczny: https://pl.wikipedia.org/wiki/Bufor_cykliczny
Przeanalizuj sobie jak to wygląda i jak to możesz zaimplementować i zacznij pisać. W internecie znajdziesz jakieś przykłady, szukaj jako Circular buffer.

1

Czyli to co mówiłem od razu, pkt 5: http://4programmers.net/Forum/1236492
Resztę też zignorowałeś

1 użytkowników online, w tym zalogowanych: 0, gości: 1