Guest User

Untitled

a guest
Jan 6th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3.  
  4. #define N 5
  5. struct queue1 {
  6. int arr[N];
  7. int len;
  8. } queue;
  9.  
  10. //CIRCULAR QUEUES
  11. struct queue3 {
  12. struct queue1 q;
  13. int i;
  14. int newest;
  15. int oldest;
  16. } q_circ;
  17.  
  18. void r_shift ( int val ) {
  19. for ( int i = N-1; i > 0 ; i++ )
  20. q_circ.q.arr[i] = q_circ.q.arr[i-1];
  21. q_circ.q.arr[0] = val;
  22. }
  23.  
  24. void push_1(int val) {
  25. int flag = 0;
  26. if ( q_circ.newest >= 0 && q_circ.oldest == 0 && q_circ.newest <= N-1
  27. ) {
  28. q_circ.newest++;
  29. q_circ.q.len++;
  30. q_circ.q.arr[q_circ.newest] = val;
  31.  
  32. }
  33.  
  34. if ( q_circ.newest == N-1 && q_circ.oldest == 0 ) {
  35. q_circ.newest = 0;
  36. q_circ.oldest = N-1;
  37. flag = 1;
  38. }
  39.  
  40. if ( q_circ.newest == 0 && q_circ.oldest == N-1 && flag == 1 )
  41. r_shift(val);
  42. }
  43.  
  44. void print () {
  45. for ( int i = 0; i <= q_circ.q.len ; i++)
  46. printf("%d ", q_circ.q.arr[i] );
  47. printf("n");
  48. }
  49.  
  50. int main()
  51. {
  52. printf("dot.n");
  53. //CIRCULAR
  54. printf("nCIRCULAR queuen");
  55. q_circ.oldest = -1;
  56. q_circ.newest = -1;
  57.  
  58. push_1(1);
  59. print();
  60.  
  61. push_1(2);
  62. print();
  63.  
  64. push_1(3);
  65. print();
  66.  
  67. push_1(4);
  68. print();
  69.  
  70. push_1(5);
  71. print();
  72.  
  73. push_1(6);
  74. print();
  75.  
  76. push_1(7);
  77. print();
  78.  
  79. push_1(8);
  80. print();
  81.  
  82. push_1(9);
  83. print();
  84.  
  85. return 0;
  86. }
Add Comment
Please, Sign In to add comment