49 lines
712 B
C++

#include "stack.h"
#include <cstdio>
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;
}