实验三:顺序栈的实现

来源:互联网 发布:mysql去除重复数据 编辑:程序博客网 时间:2024/04/29 18:41
SeqStack.h
#ifndef SeqStack_H#define SeqStack_Hconst int StackSize=10;template<class DateType>class SeqStack{public:SeqStack();~SeqStack(){}void Push(DateType x);DateType Pop();DateType GetTop();int Empty();private:DateType data[StackSize];int top;};#endif


 

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;}


 

 

SeqStack_main.cpp

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


0 0
原创粉丝点击