顺序栈的基本实现

顺序栈采用的是用数组存储的方式

顺序栈的特点:只允许在栈顶插入和删除元素,且 先入后出

#include<iostream>
using namespace std;
const int StackSize=10;
template<class DataType>
class SeqStack
{
private:
    DataType data[StackSize];
    int top;
public:
    SeqStack()//构造函数,初始化一个空栈
    {
        top=-1;
    }
    ~SeqStack(){};//析构函数
    void Push(DataType x);//入栈操作
    DataType Pop();//出栈操作,将栈顶元素弹出
    DataType getTop();//将栈顶元素取出
    int Empty();//判断栈是否为空
};
template<class DataType>
void SeqStack<DataType>::Push(DataType x)
{
    if(top==StackSize-1) throw "上溢";
    top+=1;
    data[top]=x;
}
template<class DataType>
DataType SeqStack<DataType>::Pop()
{
    if(top==-1)throw "下溢";
    DataType x=data[top];
    top-=1;
    return x;
}
template<class DataType>
DataType SeqStack<DataType>::getTop()
{
    if(top==-1) throw "下溢";
    DataType x=data[top];
    return x;
}
template<class DataType>
int SeqStack<DataType>::Empty()
{
    if(top==-1)
    {
        return 1;
    }
    else
        return 0;
}
int main()
{
    SeqStack<int> s1;
    int a[10];
    for(int i=0;i<10;i++)
    {
        cin>>a[i];
        s1.Push(a[i]);
    }
    while(s1.Empty()!=1)//因为不知道栈里面有多少元素,所以首先要判断
    {
        cout<<s1.Pop()<<endl;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值