Advertisement
Mikhail-Podbolotov

Untitled

Apr 24th, 2024
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include "library.h"
  2.  
  3. Stack::Stack()
  4. {
  5.     Top = nullptr;
  6. }
  7.  
  8. Stack::~Stack()
  9. {
  10.     Node* i = Top;
  11.     Node* deleteNode;
  12.     while (i != nullptr) {
  13.         deleteNode = i;
  14.         i = i->Previos;
  15.         delete deleteNode;
  16.     }
  17. }
  18.  
  19. void Stack::push(int n)
  20. {
  21.     Node* Temp = new Node;
  22.     Temp->Previos = nullptr;
  23.     Temp->number = n;
  24.     if (isEmpty()) {
  25.         Top = Temp;
  26.     }
  27.     else {
  28.         Temp->Previos = Top;
  29.         Top = Temp;
  30.     }
  31. }
  32.  
  33. bool Stack::isEmpty()
  34. {
  35.     if (Top == nullptr) return true;
  36.     return false;
  37. }
  38.  
  39. int Stack::pop()
  40. {
  41.     if (!isEmpty()) {
  42.         int Remember;
  43.         Remember = Top->number;
  44.         Node* deleteTop = Top;
  45.         Top = Top->Previos;
  46.         delete deleteTop;
  47.         return Remember;
  48.     }
  49.     return -1; //на всякий случай
  50. }
  51.  
  52. void Queue::enter(int n)
  53. {
  54.     stack1.push(n);
  55. }
  56.  
  57. int Queue::Delete()
  58. {
  59.     if (stack2.isEmpty()) {
  60.         while (!stack1.isEmpty()) {
  61.             stack2.push(stack1.pop());
  62.         }
  63.     }
  64.     int Remember = stack2.pop();
  65.     while (!stack2.isEmpty()) {
  66.         stack1.push(stack2.pop());
  67.     }
  68.  
  69.     return Remember;
  70. }
  71.  
  72. bool Queue::isEmpty()
  73. {
  74.     return stack1.isEmpty() && stack2.isEmpty();
  75. }
  76.  
  77. void Queue::Read(std::ifstream& file1)
  78. {
  79.     int number;
  80.     while (!file1.eof()) {
  81.         file1 >> number;
  82.         enter(number);
  83.     }
  84. }
  85.  
  86. void Queue::Print(std::ofstream& file2)
  87. {
  88.     while (!stack1.isEmpty()) {
  89.         file2 << Delete() << " ";
  90.     }
  91.     file2 << endl;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement