栈的特点 栈是一种线性储存结构,它具有以下特点:栈中的数据遵守“先进后出”的原则;限定只能在栈顶进行插入和删除操作。
栈的插入操作,叫做进栈,也称压栈入栈,栈的删除操作,叫做弹栈出栈。
栈既然是一种线性结构,就能以数组或链表作为底层数据结构。当以数组为底层数据结构时,数组头到数组尾为栈顶的生长方向。
template<typename T>
class ArrayStack
{
public:
ArrayStack(int s=10); //默认的栈容量为十
~ArrayStack();
public:
T top(); //获取栈顶元素
void push(T t); //压栈操作
T pop(); //弹栈操作
bool isEmpty(); //判空操作
int size(); //求栈的大小
private:
int count; //栈的元素数量
int capacity; //栈的容量
T*array; //底层为数组
}