Advertisement
Guest User

queueFile

a guest
Nov 11th, 2019
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include "iostream"
  2. #include <string>
  3. using namespace std;
  4. // Josephus problem same as hot potato
  5. #define   size   10
  6.  
  7. typedef string itemtype;
  8.  
  9. struct queuetype
  10. { itemtype items [size];
  11.   int front, rear;
  12. };
  13.  
  14. typedef struct queuetype queue;
  15.  
  16. int empty(queue q)
  17. {
  18.     return q.front == q.rear;
  19. }
  20.  
  21. int full(queue q)
  22. {
  23.     return q.front == (q.rear+1)%size;
  24. }
  25.  
  26. void clear(queue & q)
  27. {
  28.     q.front = q.rear = 0;
  29. }
  30.  
  31. void insert(queue &q , itemtype i)
  32. {   if (!full(q))
  33.     {  q.rear = (q.rear+1)%size;
  34.        q.items[q.rear] = i;
  35.     }
  36.     else cout << "Queue is full";
  37. }
  38.  
  39. itemtype remove (queue &q)
  40. {   if(!empty(q))
  41.      { q.front = (q.front+1)%size;
  42.        return q.items[q.front];
  43.      }
  44.     else cout << "Queue is empty";
  45. }
  46.  
  47. void main()
  48. { queue q;  
  49.   itemtype st;
  50.   int count, number;
  51.   cout << "Enter number of names ===> ";
  52.   cin >> number; // max of size -1
  53.   clear(q);
  54.   cout << "Enter round size is ===> ";
  55.   cin >> count; // number of itemes removed and inserted before one is removed out
  56.   for(int j = 0; j < number; j ++)
  57.     { cout <<"Enter the name number "<< j+1 <<"  ==> ";
  58.       cin >> st;
  59.       insert(q, st);
  60.     }
  61.  
  62.   int j = 0;
  63.   while (number > 1)
  64.     {  st = remove(q);
  65.        j ++;
  66.        if (j!=count)
  67.            insert(q, st);
  68.        else
  69.        {  number--;
  70.           cout <<"The removed person from the list " << st << endl;
  71.           j = 0;
  72.        }
  73.      }
  74.   st = remove(q);
  75.   cout <<"The winner is ==>  " << st<< endl;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement