顺序表实验

#ifndef SeqStack_H
#define SeqStack_H  
const int StackSize=100;  
template<class DataType>  
    class SeqStack  
    {  
    public:  
        SeqStack();  
        ~SeqStack(){};  
        void Push(DataType x);  
        DataType Pop();  
        DataType GetTop();  
        int Empty();  
        void Decimaltor(int num,int r);  
    private:  
        DataType data[StackSize];  
        int top;  
};  

#endif;

#include<iostream>
using namespace std;
#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;  

}  

#include <iostream>
using namespace std;
#include "seqstack.cpp"
void main()
{SeqStack<int>S;
if(S.Empty())
cout<<"栈为空"<<endl;
else cout<<"栈非空"<<endl;
cout<<"对9和21执行进栈操作"<<endl;
S.Push(9);
S.Push(21);
cout<<"栈顶元素为:"<<endl;
cout<<S.GetTop()<<endl;
cout<<"执行一次出栈操作:"<<endl;
S.Pop();
cout<<"栈顶元素为:"<<endl;
cout<<S.GetTop()<<endl;

}

#include <iostream>
using namespace std;
#include "seqstack.cpp"
void main()
{SeqStack<int>S;
if(S.Empty())
cout<<"栈为空"<<endl;
else cout<<"栈非空"<<endl;
cout<<"对9和21执行进栈操作"<<endl;
S.Push(9);
S.Push(21);
cout<<"栈顶元素为:"<<endl;
cout<<S.GetTop()<<endl;
cout<<"执行一次出栈操作:"<<endl;
S.Pop();
cout<<"栈顶元素为:"<<endl;

cout<<S.GetTop()<<endl;}



猜你喜欢

转载自blog.csdn.net/CHENCHWT/article/details/80069904