编程模板中提供了能够实现两个栈共享存储空间的双端顺序栈类模板DuSqStack,请补全所缺少的入栈和出栈函数。
时间: 2023-05-12 17:03:26 浏览: 85
好的,以下是DuSqStack类模板的入栈和出栈函数的完整代码:
template <typename T>
class DuSqStack {
private:
T* data; // 存储数据的数组
int top1, top2; // 两个栈的栈顶指针
int maxSize; // 栈的最大容量
public:
DuSqStack(int size) {
maxSize = size;
data = new T[maxSize];
top1 = -1;
top2 = maxSize;
}
~DuSqStack() {
delete[] data;
}
bool push1(T x) {
if (top1 + 1 == top2) {
return false; // 栈满,无法入栈
}
data[++top1] = x;
return true;
}
bool push2(T x) {
if (top2 - 1 == top1) {
return false; // 栈满,无法入栈
}
data[--top2] = x;
return true;
}
bool pop1(T& x) {
if (top1 == -1) {
return false; // 栈空,无法出栈
}
x = data[top1--];
return true;
}
bool pop2(T& x) {
if (top2 == maxSize) {
return false; // 栈空,无法出栈
}
x = data[top2++];
return true;
}
};
阅读全文