Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба1 / Laba 1 (6)
.cpp#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
