Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "library.h"
- Stack::Stack()
- {
- Top = nullptr;
- }
- Stack::~Stack()
- {
- Node* i = Top;
- Node* deleteNode;
- while (i != nullptr) {
- deleteNode = i;
- i = i->Previos;
- delete deleteNode;
- }
- }
- void Stack::push(int n)
- {
- Node* Temp = new Node;
- Temp->Previos = nullptr;
- Temp->number = n;
- if (isEmpty()) {
- Top = Temp;
- }
- else {
- Temp->Previos = Top;
- Top = Temp;
- }
- }
- bool Stack::isEmpty()
- {
- if (Top == nullptr) return true;
- return false;
- }
- int Stack::pop()
- {
- if (!isEmpty()) {
- int Remember;
- Remember = Top->number;
- Node* deleteTop = Top;
- Top = Top->Previos;
- delete deleteTop;
- return Remember;
- }
- return -1; //на всякий случай
- }
- void Queue::enter(int n)
- {
- stack1.push(n);
- }
- int Queue::Delete()
- {
- if (stack2.isEmpty()) {
- while (!stack1.isEmpty()) {
- stack2.push(stack1.pop());
- }
- }
- int Remember = stack2.pop();
- while (!stack2.isEmpty()) {
- stack1.push(stack2.pop());
- }
- return Remember;
- }
- bool Queue::isEmpty()
- {
- return stack1.isEmpty() && stack2.isEmpty();
- }
- void Queue::Read(std::ifstream& file1)
- {
- int number;
- while (!file1.eof()) {
- file1 >> number;
- enter(number);
- }
- }
- void Queue::Print(std::ofstream& file2)
- {
- while (!stack1.isEmpty()) {
- file2 << Delete() << " ";
- }
- file2 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement