⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6循环顺序队列的操作.cpp

📁 数据结构的C++表述
💻 CPP
字号:
#include<iostream.h>
#define MaxSize 100
struct cqueue
{
	int data[MaxSize];
	int rear,front,num;
};
int In_SeQueue(cqueue* &q, int &x)
{
	if(q->num==MaxSize)
	{
		cout<<"表满!"<<endl;
		return -1;
	}
	else
	{
		q->rear=(q->rear+1)%MaxSize;
		q->data[q->rear]=x;
		q->num++;
		return 1;
	}
}
int Out_SeQueue(cqueue* &q,int &x)
{
	if(q->num==0)
	{
		cout<<"对空!"<<endl;
		return -1;
	}
	else
	{
		q->front=(q->front+1)%MaxSize;
		x=q->data[q->front];
		q->num--;
		return 1;
	}
}
cqueue* Init_SeQueue()
{
	cqueue *q;
	int x;
	q=new cqueue;
	q->front=q->rear=MaxSize-1;
	q->num=0;
	cout<<"创建循环队列,输入数据,以-1结束:"<<endl;
	cin>>x;
	while(x!=-1)
	{
		if(In_SeQueue(q,x)==-1)
			break;
		cin>>x;
	}
	return q;
}
void Print(cqueue *q)
{
	int x;
	if(q->rear<q->front)
	{
		cout<<"队列的数据为:";
		for(x=q->front+1;x<=MaxSize-1;x++)
			cout<<q->data[x]<<" ";
		for(x=0;x<=q->rear;x++)
			cout<<q->data[x]<<" ";
		cout<<endl;
	}
	else
	{
		cout<<"队列的数据为:";
		for(x=q->front+1;x<=q->rear;x++)
			cout<<q->data[x]<<" ";
		cout<<endl;
	}
}
void main()
{
	cqueue* q;
	int x;
	q=Init_SeQueue();
	Print(q);
	cout<<"输入入队的数据,以-1结束:"<<endl;
	cin>>x;
	while(x!=-1)
	{
		if(In_SeQueue(q,x)==-1)
			break;
		cin>>x;
	}
	Print(q);
	Out_SeQueue(q,x);
	cout<<"数据"<<x<<"出队!"<<endl;
	Out_SeQueue(q,x);
	cout<<"数据"<<x<<"出队!"<<endl;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -