队列基本操作

描述

输入若干个整数(小于50个),整数共有四种类型,不同类型的整数代表不同操作。说明如下:

1、[10,99]之间的整数:将该整数入队。

2、-1: 队首整数出队。

3、-2: 显示队列所有整数。

4、-3: 输入结束。

说明:采用链队列实现,必须有队列初始化函数、入队函数、出队函数。

输入

第一行若干整数(必须满足上述四种类型要求),以-3结束。

输出

输出队列中所有整数。

样例输入

13 25 90 -1 12 -2 -1 45 78 30 -2 -3

样例输出

25 90 12
90 12 45 78 30
#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct Lnode{
	ElemType data;
	struct Lnode * next;
}Lnode;
typedef struct{
	Lnode *front,*rear;
}LinkQueue;
void init(LinkQueue &q){
	q.front = q.rear = new Lnode;
	q.front -> next = NULL;
}
void push(LinkQueue &q,ElemType e){
	Lnode *s = new Lnode;
	s->data=e;
	s->next=NULL;
	q.rear->next=s;
	q.rear=s;
}
void pop(LinkQueue &q){
	Lnode *p = q.front->next;
	q.front->next = p->next;
	if(q.rear==p) q.rear=q.front;
	delete(p);
}
ElemType front(LinkQueue q){
	return q.front->next->data;
}
int size(LinkQueue q){
	int cnt = 0;
	Lnode *p = q.front->next;
	while(p){
		cnt++;
		p = p->next;
	}
	return cnt;
}
void display(LinkQueue q){
	Lnode *p = q.front->next;
	while(p){
		cout << p->data<< " ";
		p = p->next;
	}
	cout << endl;
}
int main(){
	LinkQueue q;
	int x;
	init(q);
	while(1){
		cin>>x;
		if(x==-3) break;
		if(x==-1) pop(q);
		else if(x==-2) display(q);
		else if(x>=10&&x<=99) push(q,x);
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云曦.三清幽者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值