Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef struct queueNode {
  6. long long data = 0;
  7. queueNode* next = nullptr;
  8. };
  9.  
  10. class queue {
  11. public:
  12. queue() {
  13. top = nullptr;
  14. bottom = nullptr;
  15. }
  16.  
  17. ~queue() {
  18. while (bottom != nullptr) {
  19. pop();
  20. }
  21. }
  22.  
  23. void push(long long element) {
  24. queueNode* el = new queueNode;
  25. el->data = element;
  26.  
  27. if (bottom == nullptr) {
  28. bottom = el;
  29. }
  30. if (top != nullptr) {
  31. top->next = el;
  32. }
  33. top = el;
  34. }
  35.  
  36. long long pop() {
  37. if (bottom != nullptr) {
  38. queueNode* tmp = bottom;
  39. long long val = tmp->data;
  40. bottom = tmp->next;
  41. delete tmp;
  42.  
  43. if(bottom==nullptr)
  44. {
  45. top = nullptr;
  46. }
  47.  
  48. return val;
  49. }
  50. }
  51.  
  52. private:
  53. queueNode* top;
  54. queueNode* bottom;
  55. };
  56.  
  57.  
  58. int main() {
  59. ios_base::sync_with_stdio(false);
  60. cin.tie(nullptr);
  61.  
  62. freopen("queue.in", "r", stdin);
  63. freopen("queue.out", "w", stdout);
  64.  
  65. int n;
  66. cin >> n;
  67.  
  68. queue q;
  69.  
  70. for (int i = 0; i < n; i++) {
  71. char action;
  72. cin >> action;
  73.  
  74. if (action == '+') {
  75. long long el;
  76. cin >> el;
  77. q.push(el);
  78. }
  79. else if (action == '-') {
  80. cout << q.pop() << '\n';
  81. }
  82. }
  83.  
  84. return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement