顺序栈的实现

顺序栈的实现
数据结构课本代码
~~

#include<iostream>
using namespace std;
const int StackSize=10;
template<typename DataType>
class SeqStack
{
public:
   SeqStack()
{
   int top=-1;
}
//析构函数-顺序栈的销毁:析构函数为空
~SeqStack()
{

}
//入栈操作:插入x只需将栈顶元素top加1,然后top的位置填入x
void Push(DataType x)
{
    if(top==StackSize-1)//入栈的限制条件:栈满
        throw"上溢";
    data[++top]=x;//先加1,在调用top
}
//出栈操作:只需取出栈顶元素,然后将栈顶元素top减1
 DataType Pop()
 {
     DataType x;
     if(top==-1)//出栈的限制条件:栈空
        throw"下溢";
     x=data[top--];
     return x;
 }
 DataType GetTop()
 {
    DataType x;
    if(top==-1)
        throw"下溢";
    x=data[top];
    return x;
 }
 int Empty()
 {
     if(top==-1)
        return 1;
     else
        return 0;
 }
private:
    DataType data[StackSize];//存放栈元素的数组
    int top;//栈顶元素在数组中的下标

};
//构造函数-顺序栈的初始化:将栈顶指针top置为-1

 int main()
 {
     int x;
     SeqStack<int> S{};
     cout<<"对15和10执行入栈操作,";
     S.Push(15);
     S.Push(10);
     cout<<"当前栈顶元素为:"<<S.GetTop()<<endl;
     try
     {
         x=S.Pop();
         cout<<"执行一次出栈操作,删除元素"<<x<<endl;
     }catch(string str){cout<<str<<endl;}
     try
     {
         cout<<"请输入待入栈的元素:";
         cin>>x;
         S.Push(x);
     }catch(string str){cout<<str<<endl;}
     if(S.Empty()==1)
        cout<<"栈为空"<<endl;
     else
        cout<<"栈非空"<<endl;
     return 0;
 }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值