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

一、实验目的

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

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

二、实验内容

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

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

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

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

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

三、编码

1.顺序栈

#include
   
   
    
    
using namespace std;
const int MAX_SIZE=10;
class SeqStack{
private:
	float data[MAX_SIZE];
	int top;
public:
	SeqStack();
	void push(float x);
	float pop();
	float getTop();
	int isEmpty();
};
SeqStack::SeqStack(){
	top=-1;
}
void SeqStack::push(float x){  //top上移,把x存到top指向的位置
	if(top==MAX_SIZE-1) throw"上溢!\n";
	data[++top]=x;
}
float SeqStack::pop(){  //取出栈顶元素,把top下移
	if(top==-1) throw"栈空!\n";
	return data[top--];
}
float SeqStack::getTop(){  //返回top指向位置的元素
	if(top==-1) throw"栈空!\n";
	return data[top];
}
int SeqStack::isEmpty(){  //top
	if(top==-1) return 1;
	else return 0;
}
int main(){
	try{
		SeqStack s;
		try{
			cout<<"
  • 11
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值