使两个栈分别从数组的两头开始向中间生长,当两个栈的栈顶指针相遇时,表示两个栈都满了。此时,最大化地利用了数组空间。
在实现顺序栈的基础上,实现双栈,顺序栈见我的另一篇博客:
C++实现顺序栈的基本功能
代码如下
#pragma once
#include<iostream>
using std::cout;
using std::endl;
using Position = int;
template<typename T>
class Stack
{
public:
Stack(int MaxSize = 1000);
const bool& IsFull();
const bool& IsEmpty(const int& Tag);
const bool& Push(const T& X, const int& Tag