#include "stack.h" #include Stack::Stack(size_t size) { capacity = size; data = new api_packet[capacity]; top = -1; } Stack::~Stack() { delete[] data; } bool Stack::isEmpty() { return top == -1; } bool Stack::isFull() { return top == capacity - 1; } bool Stack::push(const api_packet &item) { if (isFull()) { return false; // Stack overflow } data[++top] = item; return true; } bool Stack::pop(api_packet &item) { if (isEmpty()) { return false; // Stack underflow } item = data[top--]; return true; } bool Stack::peek(api_packet &item) { if (isEmpty()) { return false; // Stack is empty } item = data[top]; return true; } size_t Stack::size() { return top + 1; } size_t Stack::getCapacity() { return capacity; }