栈的顺序存储(顺序栈)
顺序栈的概念
用一段连续的内存一次存储栈中的数据
只能在一端进行插入或者删除操作
先入后出,后入先出;
一种受限制的线性表
运行进行插入和删除操作的一端被称为栈顶;
栈底(线性表表头)
插入数据(进栈/入栈)
删除数据(出栈)
空栈:不包含任何数据;
实现代码
#include <iostream>
using namespace std;
//栈的操作
//为了方便,将数组下标为0的一端作为栈底
//顺序栈的类定义
#define InitSize 10 //动态数组尺寸
#define IncSize 5 //当动态数组存满数据后每次扩容所能多保存的元素数量
template <typename T>//T代表数组中元素类型
class SeqStack
{
public:
SeqStack(int length = InitSize);//构造函数
~SeqStack();//析构函数
bool Push(const T& e);//入栈(增加数据)
bool Pop(T& e);//出栈(删除栈顶数据)
bool GetTop(T& e);//获取栈顶元素数据
void DisplayStack();//扫描栈内元素
int StackLength();//获取栈的长度
bool IsEmpty();//判断栈是否为空栈
bool IsFull();//判断栈是否已满
private:
void IncreaseSize