实验三:栈和队列的基本操作实现及其应用——顺序栈

一、实验目的

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

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

二、实验内容

1、自己确定结点的具体数据类型和问题规模:

分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。

分别建立一个顺序队列和链队列,实现队列的入队和出队操作。

2、设计算法并写出代码,实现一个十将二进制转换成2进制数。

3、选做题(*

设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。

三、实验步骤

1、依据实验内容分别说明实验程序中用到的数据类型的定义;

2、相关操作的算法表达;

3、完整程序;

4、总结、运行结果和分析。

5、总体收获和不足,疑问等。

四、实验要求

1、   按照数据结构实验任务书,提前做好实验预习与准备工作。

2、   加“*”为选做题。做好可加分。

3、   严格按照数据结构实验报告模板和规范,及时完成实验报告。

4、   在个人主页上发文章提交作业。

5、   实验课会抽查3-5人,希望你可以被查到!

源代码如下:

#include
using namespace std;
const int StackSize=10;
template 
class SeqStack
{
	public:
		SeqStack(){top=-1;}
		~SeqStack(){}
		void Push (DataType x);
		DataType Pop();
		DataType GetTop(){
			if(top!=-1)
			return data[top];
		}
		int Empty(){
			if(top==-1)
			return 1;
			else
			return 0;
		}
	private:
		DataType data[StackSize];
		int top;
};

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

template
DataType SeqStack::Pop()
{
	int x;
	if(top==-1)throw"下溢";
	x=data[top--];
	return x; 
}

int main()
{
	int m,i;
	SeqStacks;
	do
	{
		cout<<"请输入入栈数据:"<>m; 
		cout<<"如果继续输入数据,请输入1;如果结束,请输入0:";
		cin>>i;
		s.Push(m);
	}
	while(i);
	cout<<"出栈数据为:"<

运行结果如下:

实验三:栈和队列的基本操作实现及其应用——顺序栈_第1张图片

实验三:栈和队列的基本操作实现及其应用——顺序栈_第2张图片


你可能感兴趣的:(实验三:栈和队列的基本操作实现及其应用——顺序栈)