Advertisement
fuadnafiz98

Circular Queue

Apr 5th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <string>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. class CQueue{
  9. private:
  10. int cap, head, tail, size;
  11. int *sq;
  12. public:
  13. CQueue(){
  14. head = 0;
  15. size = 0;
  16. tail = 0;
  17. cap = 6;
  18. sq = (int*)malloc(cap * sizeof(int));
  19. }
  20. int getsize(){
  21. return size;
  22. }
  23. int getCapacity(){
  24. return cap;
  25. }
  26. void del(){
  27. free(sq);
  28. }
  29. void enqueue(int in){
  30. if(size != 0 && (head == tail%cap)){
  31. cout << "Queue is Full\n";
  32. }
  33. else{
  34. sq[tail] = in;
  35. tail++;
  36. size++;
  37. tail %= cap;
  38. }
  39. }
  40. int dequeue(){
  41. int ret;
  42. if(head == tail && size == 0){
  43. cout << "Queue is empty\n";
  44. return -1;
  45. }
  46. else{
  47. ret = sq[head];
  48. head++;
  49. size--;
  50. head %= cap;
  51. }
  52. return ret;
  53. }
  54. int top(){
  55. return sq[head];
  56. }
  57. void display(){
  58. if (isempty() == true)
  59. cout << "Queue is empty" << endl;
  60. else{
  61. int element = 1;
  62. cout << "Queue elements are : " << endl;
  63. for (int i = head; element <= size; i = (i % cap) + 1)
  64. {
  65. cout << sq[i] << " ";
  66. element++;
  67. }
  68. cout << endl;
  69. }
  70. }
  71. bool isfull() {
  72. if (size != 0 && (head == tail%cap))
  73. return true;
  74. else
  75. return false;
  76. }
  77. bool isempty()
  78. {
  79. if (size == 0)
  80. return true;
  81. else
  82. return false;
  83. }
  84. };
  85.  
  86. int main(){
  87. CQueue q1;
  88. q1.display();
  89. q1.enqueue(10);
  90. q1.enqueue(10);
  91. q1.enqueue(10);
  92. q1.enqueue(10);
  93. q1.enqueue(20);
  94. q1.enqueue(30);
  95. q1.enqueue(40);
  96. q1.display();
  97. q1.enqueue(500);
  98. q1.enqueue(400);
  99. q1.enqueue(400);
  100. q1.display();
  101. q1.dequeue();
  102. q1.dequeue();
  103. q1.dequeue();
  104. q1.dequeue();
  105. q1.dequeue();
  106. q1.dequeue();
  107. q1.enqueue(5);
  108. q1.enqueue(5);
  109. q1.enqueue(5);
  110. q1.display();
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement