Posted By

mladenberakovic on 12/03/11


Tagged


Versions (?)

red_polje.h


 / Published in: C++
 

Zadatak 3 - Strukture Podataka

  1. #include <iostream>
  2. using namespace std;
  3. const int br_elem_polja = 10000;
  4. struct struktura{
  5. int x[br_elem_polja+1], y[br_elem_polja+1];
  6. int front, rear;
  7. };
  8. struct strukturaP{
  9. int x,y;
  10. };
  11. typedef strukturaP atrib;
  12. typedef struktura queue;
  13.  
  14. int AddOne(int n){
  15. return ((n+1)%(br_elem_polja+1));
  16. };
  17.  
  18. struktura *InitQ(struktura *&Q){
  19. Q=new struktura;
  20. Q->rear=br_elem_polja;
  21. Q->front=0;
  22. return Q;
  23. };
  24.  
  25. atrib FrontQ(struktura *Q){
  26. atrib pom;
  27. pom.x=pom.y=-1;
  28. if(AddOne(Q->rear) != Q->front){
  29. pom.x=Q->x[Q->front];
  30. pom.y=Q->y[Q->front];
  31. }
  32. return pom;
  33. };
  34.  
  35. void EnQueueQ(atrib x, struktura *Q){
  36. if(AddOne(AddOne(Q->rear)) != Q->front) {
  37. Q->rear=AddOne(Q->rear);
  38. Q->x[Q->rear]=x.x;
  39. Q->y[Q->rear]=x.y;
  40. }
  41. else
  42. cout<<"Napis nije upisan"<<endl<<"Red je pun!"<<endl;
  43. };
  44.  
  45. void DeQueueQ(struktura *Q){
  46. if(AddOne(Q->rear) != Q->front)
  47. Q->front = AddOne(Q->front);
  48. else
  49. cout<<"Red je prazan!"<<endl;
  50. };
  51.  
  52. bool IsEmptyQ(struktura *Q){
  53. if(AddOne(Q->rear) != Q->front)
  54. return false;
  55. return true;
  56. };

Report this snippet  

You need to login to post a comment.