/* stack.h */
#ifndef __SQSTACK_H__
#define __SQSTACK_H__ 1
#include <iostream.h>
extern "C" { void exit(int); }
const int nDefaultStackSize = 50; //缺省Stack元素个数
//以下为栈的顺序存储结构(顺序栈)的C++类定义
template <class T> //声明为模板类
class Stack {
private:
T *stacklist; //存放栈元素的指针
int stacksize; //存放栈(数组)大小
int top; //指示栈顶元素的位置(数组下标)
public:
//构造函数
Stack(int initSize = nDefaultStackSize) {
if (initSize < 1) initSize = nDefaultStackSize;
stacklist = new T[initSize]; //为stacklist分配存储空间
if (!stacklist) {
cerr << "为Stack分配存储空间失败!程序将终止。"
<< endl;
exit(1);
}
stacksize = initSize; //初始化栈大小
top = -1; //初始化栈顶位置
}
//析构函数
~Stack() {