循环队列

#include<iostream>
using namespace std;
const int Max=10;


struct queue
{
	int data[Max];
	int front;
	int rear;
};


void initqueue(queue &s)
{
	s.front=0;
	s.rear=0;
}


bool isempty(queue &s)
{
	return(s.front==s.rear);
}


void display(queue &s)
{
	//cout<<"队列中元素依次为(队头在左): ";
		for(int i=s.front;(i+1)%Max<=s.rear;i++)
			cout<<s.data[i]<<' ';
			//cout<<endl;
	
}


bool push(queue &s,int x)
{
	if((s.rear+1)%Max==s.front)
	{
		cout<<"queue is full,push failure!\n";
		return false;
	}	
	s.data[s.rear]=x;  
	s.rear=(s.rear+1)%Max;
	return true;
}


bool pop(queue &s,int &x)
{
	if(s.rear==s.front)
	{
		cout<<"queue is empty,pop failure!\n";
		return false;
	}
	x=s.data[s.front];             //top位置为当前栈顶元素,所以先-1在出栈
	s.front=(s.front+1)%Max;
	return true;
}


bool gettop(queue &s,int x)
{
	if(s.front==s.rear)
	{
		cout<<"queue is empty,pop failure!\n";
		return false;
	}
	x=s.data[s.front];
	cout<<"get success!\n";
	return true;
}



int main()
{
	queue aaa;
	initqueue(aaa);
	push(aaa,7);
	push(aaa,4);
	push(aaa,5);
	push(aaa,1);
	push(aaa,3);
	push(aaa,10);
	push(aaa,6);
	//pop(aaa,x);
	//pop(aaa,x);
	display(aaa);
	cout<<endl<<endl<<endl;
	//cout<<"x: "<<x<<endl;



	system("pause");
	return 1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值