C++ Sda
C++ Sda
#include <stdexcept>
public:
Stack(int capacity = 10) : size(0), capacity(capacity) {
data = new T[capacity];
}
~Stack() {
delete[] data;
}
void pop() {
if (size == 0) {
throw underflow_error("Stack is empty");
}
size--;
}
public:
Queue(int capacity = 10) : head(0), tail(0), size(0), capacity(capacity) {
data = new T[capacity];
}
~Queue() {
delete[] data;
}
void dequeue() {
if (size == 0) {
throw underflow_error("Queue is empty");
}
head = (head + 1) % capacity;
size--;
}
public:
Stack(int capacity = 10) : size(0), capacity(capacity) {
if (capacity < 0) {
throw NegativeSizeException();
}
data = new T[capacity];
}
~Stack() {
delete[] data;
}
void pop() {
if (size == 0) {
throw underflow_error("Stack is empty");
}
size--;
}
public:
Queue(int capacity = 10) : head(0), tail(0), size(0), capacity(capacity) {
if (capacity < 0) {
throw NegativeSizeException();
}
data = new T[capacity];
}
~Queue() {
delete[] data;
}
void dequeue() {
if (size == 0) {
throw underflow_error("Queue is empty");
}
head = (head + 1) % capacity;
size--;
}