问题分析:
利用一个数组实现连个栈,有多种方式如:
方法1:利用奇偶位,分别存储栈1和栈2的数据;
方法2:从中间开始将数组一分为二,左边为栈1,右边为栈2;
方法3:栈1从头开始增长,栈2从尾向头进行增长,相遇后,增容;
优劣分析:
***建议:***
如果要快速实现逻辑,可以不用实现成动态增长内存的版本,直接定义一个静态数组完成;有的时候可以不用实现模板类型的,直接怎么简单怎么实现。
代码部分:
#include<iostream>
using namespace std;
#include<assert.h>
class TwoStack
{
public:
TwoStack()
:_array(NULL)
, _Stack1Top(0)
, _Stack2Top(0)
, _Capacity(0)
{}
void Push1(const int& data)
{
_CheakCapacity();
_array[_Stack1Top++] = data;
}