一个数组实现两个栈有很多想法,我先写一种比较简单的,思路如下图所示:
代码如下:
#include<iostream>
using namespace std;
//一个数组实现两个栈
template <class T>
class arraystack
{
public :
arraystack()
{
_array1 = new T[10];
_array2 = _array1 + 9;
_size1 = 0;
_size2 = 0;
_capacity = 10;
}
void pusharray1(const T& x)
{
//判断数组是否已满
if( (_size1+_size2) < _capacity )
{
_array1[_size1] = x;
_size1++;
}
else
cout<< "该栈已满"<<endl;
}
void pusharray2(const T& x)
{
if( (_size1+_size2) < _capacity )
{
_array1[_capacity - _size2 - 1] = x;
_size2++;
}