当前位置:   article > 正文

栈和队列的实验_1、掌握栈和队列的基本知识 2、深入理解栈和队列的特征,掌握并灵活运用栈和队列。

1、掌握栈和队列的基本知识 2、深入理解栈和队列的特征,掌握并灵活运用栈和队列。

建立一个头文件SeqStack.h该文件包括顺序栈类SeqStack的定义


#ifndef SeqStack_H

#define SeqStack_H
const int StackSize=10;      //栈最多有10个元素
template<class DataType>     //定义模板类SeqStack
class SeqStack
{
public:
SeqStack();              //构造函数,栈的初始化
~SeqStack(){}            //析构函数
void Push(DataType x);   //将元素x入栈
DataType Pop();          //将栈顶元素弹出
    DataType GetTop();       //去栈顶元素(不删除)
int Empty();             //判断栈是否为空
private:
DataType data [StackSize];//存放栈元素的数组
int top;                  //栈顶指针,指示栈顶元素在数组的下标
};

#endif

建立一个源程序文件SeqStack.cpp,该文件包括类SeqStack中成员函数的定义

#include"SeqStack.h"
template<class DataType>       //以下是类SeqStack的成员函数定义
SeqStack<DataType>::SeqStack()
{
top=-1;
}
template<class DataType>
void SeqStack<DataType>::Push(DataType x)   //从类SeqStack中继承函数Push
{
if(top==StackSize-1)throw"上溢";          
top++;
data[top]=x;
}
template<class DataType>
DataType SeqStack<DataType>::Pop()           //从类SeqStack中继承函数Pop
{
DataType x;
if(top==-1)throw"下溢";
x=data[top--];
return x;
}
template<class DataType>
DataType SeqStack<DataType>::GetTop()     //从类SeqStack中继承函数GetTop
{
if(top!=-1)
return data[top];
}
template<class DataType>
int SeqStack<DataType>::Empty()         //从类SeqStack中继承函数Empty
{
if(top==-1)return 1;
else return 0;
}


建立一个源程序文件SeqStack_main.cpp,该文件包括主函数

#include<iostream>
using namespace std;
#include "SeqStack.cpp"         //引入类SeqStack的成员函数定义
void main()
{
SeqStack<int>S;            //创建模板类的实例
if(S.Empty())
cout<<"栈为空"<<endl;
else
cout<<"栈非空"<<endl;
cout<<"对15和10执行入栈操作"<<endl;
S.Push(15);
S.Push(10);
cout<<"栈顶元素为:"<<endl;
cout<<S.GetTop()<<endl;         //取栈顶元素
cout<<"执行一次出栈操作"<<endl;
S.Pop();                        //执行出栈操作
cout<<"栈顶元素为:"<<endl;
cout<<S.GetTop()<<endl;
}





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/668367
推荐阅读
相关标签
  

闽ICP备14008679号