/ Published in: C++
Implementacija reda pomocu polja
Expand |
Embed | Plain Text
#define velicina 10000 struct ordinacija{ int x[velicina+1], y[velicina+1]; int front, rear; }; struct ordinacijaP{ int x,y; }; typedef ordinacijaP pomocna; typedef ordinacija red; int AddOne(int n){ return ((n+1)%(velicina+1)); }; ordinacija *InitQ(ordinacija *&Q){ Q=new ordinacija; Q->rear=velicina; Q->front=0; return Q; }; pomocna FrontQ(ordinacija *Q){ pomocna pom; pom.x=pom.y=-1; if(AddOne(Q->rear) != Q->front){ // ako nije prazan red pom.x=Q->x[Q->front]; pom.y=Q->y[Q->front]; } return pom; // prazan red }; void EnQueueQ(pomocna x, ordinacija *Q){ if(AddOne(AddOne(Q->rear)) != Q->front) { // ako nije pun red Q->rear=AddOne(Q->rear); Q->x[Q->rear]=x.x; // unos u red Q->y[Q->rear]=x.y; } else std::cout<<"Zapis nije dodan.\nPun red!\n"; }; void DeQueueQ(ordinacija *Q){ if(AddOne(Q->rear) != Q->front) // ako nije prazan red Q->front = AddOne(Q->front); else std::cout<<"Prazan red!\n"; }; bool IsEmptyQ(ordinacija *Q){ if(AddOne(Q->rear) != Q->front) // ako nije prazan red return false; return true; };
Comments
Subscribe to comments
You need to login to post a comment.

Moje rjesenje implementacije reda pomocu polja nema mnogo razlika izmedju ostalih primjera rjesenja. Postoje tek osnovne razlike kao i kod implementacije reda pomocu pokazivaca s imenima pojedinih varijabli, imenima struktura, definirao sam primjerice konstantu za velicinu polja, dakle promjenom te konstante mozemo vrlo jednostavno povecati ili smanjiti kapacitet polja (ne moramo nista vise mijenjati!). Nadalje, moguce da su usporedbe (provjere popunjenosti polja/reda) slicne ili drugacije, poredak funkcija itd.