Posted By

antolic on 12/06/11


Tagged


Versions (?)

red_polje.h


 / Published in: C++
 

implementacija pomocu polja.

  1. #define velicina 10000
  2. struct ordinacija{
  3. int x[velicina+1], y[velicina+1];
  4. int front, rear;
  5. };
  6. struct ordinacijaP{
  7. int x,y;
  8. };
  9. typedef ordinacijaP pomocna;
  10. typedef ordinacija red;
  11.  
  12. int AddOne(int n){
  13. return ((n+1)%(velicina+1));
  14. };
  15.  
  16. ordinacija *InitQ(ordinacija *&Q){
  17. Q=new ordinacija;
  18. Q->rear=velicina;
  19. Q->front=0;
  20. return Q;
  21. };
  22.  
  23. pomocna FrontQ(ordinacija *Q){
  24. pomocna pom;
  25. pom.x=pom.y=-1;
  26. if(AddOne(Q->rear) != Q->front){ // ako nije prazan red
  27. pom.x=Q->x[Q->front];
  28. pom.y=Q->y[Q->front];
  29. }
  30. return pom; // prazan red
  31. };
  32.  
  33. void EnQueueQ(pomocna x, ordinacija *Q){
  34. if(AddOne(AddOne(Q->rear)) != Q->front) { // ako nije pun red
  35. Q->rear=AddOne(Q->rear);
  36. Q->x[Q->rear]=x.x; // unos u red
  37. Q->y[Q->rear]=x.y;
  38. }
  39. else std::cout<<"Zapis nije dodan.\nPun red!\n";
  40. };
  41.  
  42. void DeQueueQ(ordinacija *Q){
  43. if(AddOne(Q->rear) != Q->front) // ako nije prazan red
  44. Q->front = AddOne(Q->front);
  45. else std::cout<<"Prazan red!\n";
  46. };
  47.  
  48. bool IsEmptyQ(ordinacija *Q){
  49. if(AddOne(Q->rear) != Q->front) // ako nije prazan red
  50. return false;
  51. return true;
  52. };

Report this snippet  

You need to login to post a comment.