数据结构|顺序栈的实现(实验3.1)

一、实验目的

1、熟练掌栈的结构特点,掌握栈的顺序存储结构和实现。

2、学会使用栈解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模,建立一个顺序栈,实现栈的压栈和出栈操作。


源代码如下:

#include<iostream>  
using namespace std;  
const int StackSize = 10;  
template<class T>  
class SeqStack
{
    public:  
        SeqStack(){  top=-1; };
        ~SeqStack(){}
        void push(T x); 
        T pop();//
		T gettop();
        int empty();//
		void print();
    private:  
        T data[StackSize]; //   
        int top;  // 
}; 
template<class T>  
void SeqStack<T>::push(T x)  
{  
    if (top==StackSize-1) throw("上溢");  
   top++;
   data[top]=x;
}  
template<class T>  
T SeqStack<T>::pop()               
{  T x;
   if (top==-1)throw("下溢");
   x=data[top--];
   return x;
}    
  
template<class T>      
T SeqStack<T>::gettop( )    
{
    if(top!=-1)
		return data[top];
}  
  
template<class T>      
int SeqStack<T>::empty( )  
{   
    if(top==-1) 
        return 1;  
	else return 0;
     
}   
template< class T >  
void SeqStack<T>::print()  
{  
    for( int i=0 ; i<=top ; i++)  
    {  cout<<data[i]<<" ";}  
    cout<<endl;  
}   
void main()    
{  SeqStack<int>S;
if(S.empty())
cout <<"栈为空"<<endl;
else cout<<"栈非空"<<endl;
cout<<"对5和10,15进行入栈操作"<<endl;
S.push(5);
S.push(10);
S.push(15);
cout<<"结果如下:"<<endl;
S.print();
cout<<"栈顶元素为:"<<endl;
cout<<S.gettop()<<endl;
cout<<"执行出栈操作"<<endl;
S.pop();
cout<<"栈顶元素为:"<<endl;
cout<<S.gettop()<<endl;
cout<<"结果如下:"<<endl;
S.print();
} 
运行结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值