Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба2 / Laba 2 (5)
.cpp#include <iostream>
#include <windows.h>
using namespace std;
class IntStack {
private:
int* data;
int capacity;
int topIndex;
public:
IntStack(int maxSize) : capacity(maxSize), topIndex(-1) {
data = new int[capacity];
cout << "Создан стек вместимостью " << maxSize << " элементов" << endl;
}
~IntStack() {
delete[] data;
}
void push(int value) {
if (!full()) {
data[++topIndex] = value;
cout << "Добавлен элемент: " << value << endl;
} else {
cout << "Ошибка: стек полон!" << endl;
}
}
int pop() {
if (!empty()) {
int value = data[topIndex--];
cout << "Извлечен элемент: " << value << endl;
return value;
}
cout << "Ошибка: стек пуст!" << endl;
return -1;
}
bool empty() {
return topIndex == -1;
}
bool full() {
return topIndex == capacity - 1;
}
void printStatus() {
cout << "Стек " << (empty() ? "пуст" : "не пуст") << ", "
<< (full() ? "полон" : "есть свободное место") << endl;
}
};
int main() {
SetConsoleOutputCP(65001);
IntStack stack(3);
stack.printStatus();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4); // ошибка - стек полон
stack.printStatus();
cout << "Извлечение элементов из стека:" << endl;
while (!stack.empty()) {
stack.pop();
}
stack.pop(); // ошибка - стек пуст
return 0;
}
Соседние файлы в папке Лаба2
