Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
01.11.2025
Размер:
1.95 Кб
Скачать
#include <iostream>
#include <vector>
#include <windows.h>
using namespace std;

class Stack {
private:
    vector<double> data;
    
public:
    void push(double value) {
        data.push_back(value);
        cout << "Добавлен элемент в стек: " << value << endl;
    }
    
    bool pop(double &value) {
        if (data.empty()) {
            cout << "Ошибка: стек пуст!" << endl;
            return false;
        }
        value = data.back();
        data.pop_back();
        cout << "Извлечен элемент из стека: " << value << endl;
        return true;
    }
    
    bool contains(double value) {
        for (double item : data) {
            if (item == value) {
                cout << "Элемент " << value << " найден в стеке" << endl;
                return true;
            }
        }
        cout << "Элемент " << value << " не найден в стеке" << endl;
        return false;
    }
    
    void print() {
        if (data.empty()) {
            cout << "Стек пуст" << endl;
            return;
        }
        cout << "Содержимое стека (сверху вниз): ";
        for (int i = data.size() - 1; i >= 0; i--) {
            cout << data[i] << " ";
        }
        cout << endl;
    }
};

int main() {
    SetConsoleOutputCP(65001);
    
    Stack s;
    
    cout << "=== Работа со стеком ===" << endl;
    
    s.push(1.1);
    s.push(2.2);
    s.push(3.3);
    
    s.print();
    
    s.contains(2.2);
    s.contains(5.5);
    
    cout << "\nИзвлечение элементов:" << endl;
    double value;
    while (s.pop(value)) {
        // Элементы извлекаются в цикле
    }
    
    s.pop(value); // Попытка извлечь из пустого стека
    
    return 0;
}
Соседние файлы в папке Лаба1