栈的顺序存储结构(普通版)

1.SeqStack。.h(头文件)
       #ifndef  SeqStack_H
       #define  SeqStack_H
       const int StackSize=500;
       template <class DataType>
       class SeqStack
{
public:
SeqStack();
~SeqStack(){}
void Push(DataType x);
DataType Pop();
DataType GetTop();
int Empty();
DataType display();
         private:
DataType data[StackSize];
int top;
};

     #endif



2.SeqStack.cpp 源程序

       #include"SeqStack。.h"

       template<class DataType> 

       SeqStack<DataType>::SeqStack()
{
top=-1;
}
       template<class DataType>
     void SeqStack<DataType>::Push(DataType x)
{
if(top==StackSize-1)throw"上溢";
top++;
data[top]=x;
}
      template<class DataType>
      DataType SeqStack<DataType>::Pop()
{
DataType x;
if(top==-1)throw "下溢";

x=data[top--];

return x;
}
       template <class DataType>
       DataType SeqStack<DataType>::GetTop()
{
if(top!=-1)
return data[top];
}
       template <class DataType>
       int SeqStack<DataType>::Empty()
{
if(top==-1)return 1;
else return 0;

}



3.SeqStack_main().cpp(主函数)

     #include <iostream>
     using namespace std;
     #include"SeqStack.cpp"
     

     void main()
      {int i,a[200],n;
      eqStack<int>S;
      if(S.Empty())
cou t<<"栈为空"<<endl;
else 
cout<<"栈非空"<<endl;
cout<<"要入栈元素的个数共有多少个?"<<endl;
cin>>n;

for(i=1;i<=n;i++)
{cout<<"要压入栈的第"<<i<<"个元素为:"<<endl;
cin>>a[i];
S.Push(a[i]);
}

cout<<"栈顶元素为"<<endl;
cout<<S.GetTop()<<endl;
cout<<"执行一次出栈操作"<<endl;
S.Pop();
cout<<"栈顶元素为"<<endl;
cout<<S.GetTop()<<endl;
}


编译结果:




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值